QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#563172#1786. 路径交点Elegia100 ✓99ms4080kbC++141.8kb2024-09-14 03:20:392024-09-14 03:20:41

Judging History

你现在查看的是最新测评结果

  • [2024-09-14 03:20:41]
  • 评测
  • 测评结果:100
  • 用时:99ms
  • 内存:4080kb
  • [2024-09-14 03:20:39]
  • 提交

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