QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#563172 | #1786. 路径交点 | Elegia | 100 ✓ | 99ms | 4080kb | C++14 | 1.8kb | 2024-09-14 03:20:39 | 2024-09-14 03:20:41 |
Judging History
answer
#include <bits/stdc++.h>
typedef unsigned long long ull;
const int P = 998244353;
int norm(int x) { return x >= P ? x - P : x; }
int reduce(int x) { return x < 0 ? x + P : x; }
int neg(int x) { return x ? P - x : 0; }
void add(int& x, int y) { if ((x += y - P) < 0) x += P; }
void sub(int& x, int y) { if ((x -= y) < 0) x += P; }
void fam(int& x, int y, int z) { x = (x + y * (ull)z) % P; }
int mpow(int x, unsigned k) {
if (k == 0) return 1;
int ret = mpow(x * (ull)x % P, k >> 1);
if (k & 1) ret = ret * (ull)x % P;
return ret;
}
const int N = 210;
int f[N][N], g[N][N];
int n[N], m[N];
int det(int n) {
int ret = 1;
for (int i = 1; i <= n; ++i) {
int pivot = i;
while (!f[pivot][i] && pivot <= n) ++pivot;
if (pivot > n) return 0;
if (pivot != i) {
ret = P - ret;
for (int j = i; j <= n; ++j) std::swap(f[i][j], f[pivot][j]);
}
ret = ret * (ull)f[i][i] % P;
int nv = mpow(f[i][i], P - 2);
for (int j = i; j <= n; ++j) f[i][j] = f[i][j] * (ull)nv % P;
for (int j = i + 1; j <= n; ++j) for (int k = n; k >= i; --k)
f[j][k] = (f[j][k] + (P - f[j][i]) * (ull)f[i][k]) % P;
}
return ret;
}
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr); std::cout.tie(nullptr);
int T; std::cin >> T;
while (T--) {
int k; std::cin >> k;
for (int i = 1; i <= k; ++i) std::cin >> n[i];
for (int i = 1; i != k; ++i) std::cin >> m[i];
memset(f, 0, sizeof(f));
for (int i = 1; i <= n[1]; ++i) f[i][i] = 1;
for (int i = 1; i != k; ++i) {
memset(g, 0, sizeof(g));
while (m[i]--) {
int u, v; std::cin >> u >> v;
for (int i = 1; i <= n[1]; ++i)
add(g[v][i], f[u][i]);
}
memcpy(f, g, sizeof(f));
}
std::cout << det(n[1]) << '\n';
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Pretests
Final Tests
Test #1:
score: 5
Accepted
time: 0ms
memory: 4060kb
input:
5 2 10 10 49 1 1 1 2 1 7 1 9 2 3 2 6 2 9 2 10 3 1 3 2 3 3 3 5 3 6 3 7 3 8 3 9 4 2 4 3 4 4 4 7 4 10 5 3 5 7 5 10 6 1 6 2 6 3 6 5 6 8 6 9 7 1 7 3 7 8 7 9 7 10 8 5 8 6 8 7 8 9 9 1 9 3 9 4 9 7 9 10 10 2 10 4 10 6 10 9 10 10 2 10 10 46 1 1 1 2 1 3 1 10 2 1 2 2 2 5 2 9 2 10 3 3 3 7 3 8 4 2 4 5 4 7 4 8 4 1...
output:
998244348 24 21 998244346 6
result:
ok 5 lines
Test #2:
score: 5
Accepted
time: 1ms
memory: 3920kb
input:
5 2 10 10 56 1 1 1 3 1 5 1 7 1 9 1 10 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 3 3 4 3 6 3 8 3 9 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 9 4 10 5 1 5 2 5 5 5 6 5 7 5 10 6 1 6 4 6 5 6 7 7 1 7 3 7 4 8 3 8 4 8 8 9 2 9 3 9 7 9 8 9 10 10 1 10 2 10 6 10 7 10 8 10 9 10 10 2 10 10 48 1 2 1 4 1 5 1 7 1 8 1 9 1 10 2 1 2 3 2 ...
output:
998244350 1 998244334 998244347 998244348
result:
ok 5 lines
Test #3:
score: 5
Accepted
time: 1ms
memory: 3996kb
input:
5 2 10 10 55 1 5 1 6 2 1 2 3 2 4 2 6 2 7 2 8 2 9 2 10 3 3 3 4 3 5 3 6 3 7 3 10 4 1 4 2 4 3 4 4 4 6 4 7 4 8 4 10 5 1 5 2 5 3 5 5 5 7 6 1 6 2 6 4 6 6 7 3 7 5 7 8 7 9 8 1 8 2 8 4 8 6 8 9 8 10 9 1 9 2 9 4 9 6 9 7 10 2 10 3 10 4 10 6 10 8 10 9 10 10 2 10 10 53 1 1 1 4 1 6 1 10 2 1 2 3 2 4 2 6 2 7 2 8 2 9...
output:
5 998244349 1 1 1
result:
ok 5 lines
Test #4:
score: 5
Accepted
time: 1ms
memory: 4072kb
input:
5 2 10 10 53 1 1 1 2 1 5 1 6 1 7 1 10 2 2 2 3 2 8 3 2 3 3 3 5 3 9 3 10 4 1 4 5 4 6 4 7 4 8 4 9 5 1 5 2 5 3 5 5 5 7 5 10 6 5 6 7 6 8 6 9 6 10 7 4 7 6 7 8 7 9 7 10 8 1 8 2 8 5 8 9 9 1 9 2 9 4 9 5 9 10 10 1 10 2 10 3 10 4 10 6 10 7 10 9 10 10 2 10 10 50 1 1 1 4 1 8 1 10 2 3 2 4 2 5 2 7 2 10 3 2 3 3 3 4...
output:
998244343 998244352 998244347 998244343 998244343
result:
ok 5 lines
Test #5:
score: 5
Accepted
time: 1ms
memory: 3956kb
input:
5 10 10 10 10 10 10 10 10 10 10 10 13 10 18 15 18 18 15 14 13 5 4 4 7 9 6 8 9 10 2 2 1 7 8 3 5 6 10 1 3 2 4 5 8 3 8 4 7 7 8 6 10 9 1 2 2 1 4 8 6 5 9 10 3 3 5 7 9 8 2 10 10 1 1 2 4 4 8 6 7 9 5 3 6 5 3 1 4 5 2 10 7 4 10 4 6 2 10 4 2 1 5 9 5 2 6 10 3 1 10 4 2 8 4 7 1 5 8 6 7 3 9 1 9 8 3 5 6 1 4 9 8 5 8...
output:
1 998244352 1 0 998244352
result:
ok 5 lines
Test #6:
score: 5
Accepted
time: 1ms
memory: 4008kb
input:
5 10 10 10 10 10 10 10 10 10 10 10 16 16 14 17 10 12 15 16 13 5 8 1 10 7 2 9 1 6 4 2 7 8 6 3 3 4 9 10 5 5 4 9 6 7 5 1 1 3 5 1 2 8 7 10 6 2 9 1 5 4 3 7 8 6 4 3 10 9 2 5 1 10 5 2 7 4 8 3 3 3 1 4 2 7 7 6 6 9 10 5 5 3 2 8 1 4 3 10 4 2 9 1 8 1 9 4 10 9 2 10 8 7 3 6 10 10 5 5 1 2 4 1 2 3 6 4 8 9 7 8 9 6 9...
output:
1 1 998244352 0 998244352
result:
ok 5 lines
Test #7:
score: 5
Accepted
time: 1ms
memory: 3988kb
input:
5 10 10 10 10 10 10 10 10 10 10 10 55 49 52 51 47 48 58 49 39 1 1 1 3 1 9 2 2 2 3 2 7 2 8 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 8 4 1 4 2 4 3 4 5 4 7 4 9 4 10 5 6 5 9 5 10 6 1 6 5 6 6 6 7 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 10 8 3 8 4 8 5 8 6 8 7 8 8 8 9 8 10 9 7 9 8 9 9 10 1 10 2 10 3 10 4 10 5 1 1 1 3...
output:
25344 19440 997437953 46080 997544513
result:
ok 5 lines
Test #8:
score: 5
Accepted
time: 1ms
memory: 3988kb
input:
5 10 10 10 10 10 10 10 10 10 10 10 43 48 45 52 50 52 52 46 54 1 1 1 3 1 5 1 6 1 9 1 10 2 1 2 2 2 3 2 5 2 6 2 7 3 5 3 7 3 8 4 3 4 4 4 5 4 7 4 9 5 1 5 2 5 5 5 7 5 10 6 2 6 3 6 6 6 8 7 10 8 1 8 2 8 3 8 6 8 9 9 1 9 4 9 5 9 9 10 1 10 6 10 7 10 8 1 1 1 2 1 4 1 7 2 1 2 2 2 7 2 8 2 9 3 2 3 3 3 4 3 5 3 6 3 8...
output:
998237441 998050817 1920 138240 998239553
result:
ok 5 lines
Test #9:
score: 5
Accepted
time: 1ms
memory: 4004kb
input:
5 10 10 13 10 13 10 10 12 11 11 10 58 62 62 64 49 55 62 57 51 1 2 1 5 1 6 1 9 2 7 2 10 2 11 2 12 2 13 3 4 3 5 3 8 3 9 3 11 3 12 4 2 4 3 4 7 4 11 4 12 5 2 5 4 5 6 5 7 5 8 5 10 5 11 5 13 6 4 6 5 6 6 6 7 6 8 6 10 6 11 6 12 7 2 7 4 7 6 7 8 7 9 7 12 7 13 8 1 8 2 8 6 8 7 8 9 8 10 8 12 9 4 9 6 9 8 9 13 10 ...
output:
0 431535363 869602600 0 462374665
result:
ok 5 lines
Test #10:
score: 5
Accepted
time: 1ms
memory: 4072kb
input:
5 10 10 14 11 10 10 13 10 13 10 10 66 75 55 45 66 53 60 66 56 1 1 1 5 1 7 1 9 2 2 2 5 2 6 2 10 2 12 3 1 3 6 3 7 3 12 3 14 4 3 4 4 4 5 4 7 4 10 4 12 4 13 4 14 5 3 5 5 5 11 5 12 5 13 5 14 6 3 6 4 6 6 6 8 6 9 6 13 6 14 7 1 7 3 7 4 7 6 7 7 7 9 7 12 7 13 7 14 8 1 8 2 8 3 8 7 8 8 8 9 8 10 8 11 8 12 9 1 9 ...
output:
509445037 210531260 116561285 0 480038571
result:
ok 5 lines
Test #11:
score: 5
Accepted
time: 2ms
memory: 3992kb
input:
5 2 10 10 56 1 1 1 2 1 3 1 5 1 6 1 7 1 9 2 1 2 3 2 5 2 7 2 9 3 2 3 3 3 4 3 8 3 10 4 1 4 2 4 5 4 6 5 1 5 2 5 3 5 4 5 7 5 8 5 10 6 1 6 2 6 3 6 7 7 1 7 3 7 4 7 5 7 6 7 7 7 8 8 1 8 2 8 3 8 4 8 5 8 7 9 2 9 4 9 8 9 9 10 1 10 2 10 3 10 4 10 7 10 9 10 10 2 10 10 46 1 1 1 2 1 3 1 5 1 7 1 9 2 2 2 7 2 8 2 9 3 ...
output:
998244347 7 547857492 998244348 998244349
result:
ok 5 lines
Test #12:
score: 5
Accepted
time: 0ms
memory: 3928kb
input:
5 2 10 10 42 1 1 1 4 1 5 1 7 1 8 2 1 2 2 2 8 3 1 3 5 3 6 3 8 4 3 4 5 5 1 5 3 5 4 5 7 5 9 5 10 6 2 6 6 6 8 7 1 7 3 7 4 7 10 8 3 8 4 8 8 8 10 9 3 9 5 9 7 9 8 9 10 10 2 10 4 10 5 10 6 10 8 10 9 2 100 100 4905 1 1 1 2 1 5 1 6 1 7 1 10 1 13 1 14 1 15 1 17 1 18 1 20 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 32...
output:
998244341 530973746 2 0 1
result:
ok 5 lines
Test #13:
score: 5
Accepted
time: 2ms
memory: 3948kb
input:
5 2 10 10 58 1 1 1 2 1 4 1 9 1 10 2 2 2 3 2 6 2 7 2 8 3 3 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 5 4 6 4 7 4 8 5 1 5 2 5 3 5 4 5 5 5 7 5 8 5 9 5 10 6 1 6 2 6 5 6 6 6 7 6 9 7 3 7 4 7 5 7 6 7 7 7 8 7 10 8 1 8 4 8 5 8 9 8 10 9 2 9 5 9 8 9 9 9 10 10 2 10 6 10 7 10 8 2 10 10 55 1 1 1 5 1 7 1 8 1 10 2 1 2 2 2 4 2...
output:
3 998244351 998244348 2 741330205
result:
ok 5 lines
Test #14:
score: 5
Accepted
time: 6ms
memory: 3928kb
input:
5 100 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ...
output:
1 998244352 1 0 1
result:
ok 5 lines
Test #15:
score: 5
Accepted
time: 7ms
memory: 4060kb
input:
5 100 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ...
output:
0 1 998244352 1 998244352
result:
ok 5 lines
Test #16:
score: 5
Accepted
time: 68ms
memory: 4012kb
input:
5 100 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ...
output:
334543195 834743238 64906936 887345970 749415036
result:
ok 5 lines
Test #17:
score: 5
Accepted
time: 64ms
memory: 4004kb
input:
5 100 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ...
output:
551005664 774916190 258165927 333831611 45511363
result:
ok 5 lines
Test #18:
score: 5
Accepted
time: 96ms
memory: 3988kb
input:
5 100 10 15 13 13 12 13 13 13 10 13 11 11 11 12 11 12 13 11 12 13 10 10 10 11 11 12 12 10 10 10 11 10 12 12 10 13 12 12 12 11 10 12 13 12 13 13 12 10 10 11 10 12 10 10 10 12 11 12 12 10 12 12 11 15 13 12 10 11 12 12 10 11 11 10 10 12 11 12 13 13 10 13 13 13 10 11 11 11 12 10 11 13 10 12 10 10 13 11 ...
output:
0 131476393 674791629 0 453887582
result:
ok 5 lines
Test #19:
score: 5
Accepted
time: 99ms
memory: 4080kb
input:
5 100 10 12 10 13 10 12 13 12 12 13 10 11 13 12 13 12 10 12 13 12 10 12 12 12 10 10 13 12 10 10 13 11 10 12 11 12 10 10 13 11 11 11 12 10 11 11 11 13 13 13 13 11 11 12 10 10 13 13 10 11 13 11 11 15 10 10 13 11 12 12 13 10 11 13 12 13 11 10 11 10 13 13 10 10 13 11 13 13 10 13 12 13 13 11 13 11 11 12 ...
output:
0 654380406 500344548 0 452282079
result:
ok 5 lines
Test #20:
score: 5
Accepted
time: 94ms
memory: 3940kb
input:
5 100 100 119 112 115 121 120 115 112 137 116 150 123 115 113 112 113 130 118 104 127 103 122 123 118 116 139 102 117 137 111 131 135 106 119 135 106 119 103 115 124 123 135 135 122 134 117 106 128 115 121 115 115 131 112 124 135 120 113 174 113 106 115 101 124 101 117 126 130 113 105 124 139 129 12...
output:
50989987 555456312 817057040 0 277357563
result:
ok 5 lines
Extra Test:
score: 0
Extra Test Passed