Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
49406 | _ | 【AB-1】图 | C++ | 解答错误 | 0 | 76 MS | 1016 KB | 764 | 2022-05-06 22:23:47 |
#include <bits/stdc++.h> using namespace std; const int DVS = 998244353; const int MXN = 200005; int cnt[MXN], N, M, T, ans = 1; void exgcd(int a, int b, int& x, int& y) { if (!b) x = 1, y = 0; else exgcd(b, a % b, y, x), y -= a / b * x; } int inv(int x) { int y(0), z(0); exgcd(x, DVS, y, z); return (y % DVS + DVS) % DVS; } int main() { scanf("%d%d%d", &N, &M, &T); for (int y(0); M--;) { scanf("%d", &y); scanf("%d", &y); --y; ++cnt[y]; } for (int i(1); i != N; ++i) ans = ans * 1LL * cnt[i] % DVS; printf("%d\n", ans); for (int y(0); T--;) { scanf("%d", &y); scanf("%d", &y); --y; ans = ans * 1LL * inv(cnt[y]) % DVS * (cnt[y] + 1) % DVS; ++cnt[y]; } return 0; }