QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#216908#6555. Sets May Be Good275307894aWA 186ms7960kbC++141.4kb2023-10-16 08:06:532023-10-16 08:06:53

Judging History

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

  • [2023-10-16 08:06:53]
  • 评测
  • 测评结果:WA
  • 用时:186ms
  • 内存:7960kb
  • [2023-10-16 08:06:53]
  • 提交

answer

#include<bits/stdc++.h>
#define Gc() getchar() 
#define Me(x,y) memset(x,y,sizeof(x))
#define Mc(x,y) memcpy(x,y,sizeof(x))
#define d(x,y) ((m)*(x-1)+(y))
#define R(n) (rnd()%(n)+1)
#define Pc(x) putchar(x)
#define LB lower_bound
#define UB upper_bound
#define fi first
#define se second
using namespace std;using ll=long long;using db=double;using lb=long db;using ui=unsigned;using ull=unsigned long long;using pii=pair<int,int>;using LL=__uint128_t;
const int N=1e3+5,M=N*100+5,K=600+5,mod=998244353,Mod=mod-1;const db eps=1e-6;const int INF=1e9+7;mt19937 rnd(263082);
int n,m,A[N][N],del[N];
ll calc(){
	ll ans=1;int i,j,h;
	for(i=1;i<=n;i++)if(!del[i]){
		ans=ans*2%mod;
		int p=0;for(j=i+1;j<=n;j++) if(A[i][j]) {p=j;break;}
		if(!p){
			if(A[i][i]) return 0;continue;
		}
		del[p]=1;
		for(j=i+1;j<p;j++) if(A[j][p]) for(h=p;h<=n;h++) A[j][h]^=A[i][h];
		for(j=p+1;j<=n;j++) if(A[p][j]) for(h=p+1;h<=n;h++) A[min(h,j)][max(h,j)]^=A[i][h];
		if(A[i][i]){
			if(A[p][p]){
				ans=mod-ans;
				for(j=p+1;j<=n;j++) A[j][j]^=A[p][j];
			} 
			for(j=p+1;j<=n;j++) A[j][j]^=A[p][j];
		}
	}
	return ans;
}
void Solve(){
	int i,j;scanf("%d%d",&n,&m);
	while(m--){
		int x,y;scanf("%d%d",&x,&y);A[min(x,y)][max(x,y)]=1;
	}
	ll tot=1;for(i=1;i<=n;i++) tot=tot*2%mod;
	printf("%lld\n",(tot+calc())%mod*(mod+1)/2%mod);
}
int main(){
	int t=1;
	// scanf("%d",&t);
	while(t--) Solve();
	cerr<<clock()*1.0/CLOCKS_PER_SEC<<'\n';
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 4036kb

input:

5 5
1 2
2 3
3 4
4 5
1 5

output:

16

result:

ok 1 number(s): "16"

Test #2:

score: 0
Accepted
time: 0ms
memory: 4016kb

input:

3 0

output:

8

result:

ok 1 number(s): "8"

Test #3:

score: 0
Accepted
time: 0ms
memory: 4024kb

input:

2 1
1 2

output:

3

result:

ok 1 number(s): "3"

Test #4:

score: 0
Accepted
time: 0ms
memory: 4040kb

input:

4 6
1 2
1 3
1 4
2 3
2 4
3 4

output:

6

result:

ok 1 number(s): "6"

Test #5:

score: 0
Accepted
time: 0ms
memory: 4036kb

input:

1 0

output:

2

result:

ok 1 number(s): "2"

Test #6:

score: 0
Accepted
time: 0ms
memory: 3972kb

input:

4 5
1 2
1 3
1 4
2 3
3 4

output:

8

result:

ok 1 number(s): "8"

Test #7:

score: 0
Accepted
time: 0ms
memory: 4048kb

input:

5 3
1 3
1 4
1 5

output:

24

result:

ok 1 number(s): "24"

Test #8:

score: 0
Accepted
time: 0ms
memory: 3960kb

input:

5 0

output:

32

result:

ok 1 number(s): "32"

Test #9:

score: 0
Accepted
time: 0ms
memory: 4048kb

input:

6 3
1 2
3 4
3 6

output:

40

result:

ok 1 number(s): "40"

Test #10:

score: 0
Accepted
time: 0ms
memory: 4028kb

input:

6 0

output:

64

result:

ok 1 number(s): "64"

Test #11:

score: 0
Accepted
time: 0ms
memory: 3992kb

input:

7 3
2 3
3 6
6 7

output:

80

result:

ok 1 number(s): "80"

Test #12:

score: 0
Accepted
time: 0ms
memory: 3956kb

input:

7 0

output:

128

result:

ok 1 number(s): "128"

Test #13:

score: 0
Accepted
time: 0ms
memory: 4112kb

input:

20 30
1 7
1 9
1 12
1 13
2 6
2 17
3 13
4 12
4 15
4 17
6 10
6 17
7 8
7 18
8 14
9 13
10 16
10 17
12 14
13 15
13 16
13 20
14 16
14 18
14 20
15 17
15 18
15 19
15 20
16 17

output:

524288

result:

ok 1 number(s): "524288"

Test #14:

score: 0
Accepted
time: 0ms
memory: 4096kb

input:

20 73
1 4
1 9
1 13
2 6
2 7
2 12
2 14
2 18
2 19
3 6
3 10
3 12
3 14
3 16
3 17
3 18
4 6
4 7
4 11
4 14
4 15
4 18
4 19
5 6
5 7
5 9
5 10
5 12
5 14
5 15
5 17
5 18
5 19
5 20
6 12
6 13
6 15
6 16
6 17
7 9
7 16
7 19
8 11
8 15
8 16
8 20
9 10
9 12
9 17
9 20
10 11
10 12
10 14
10 16
10 17
10 18
11 12
11 20
12 13
1...

output:

524288

result:

ok 1 number(s): "524288"

Test #15:

score: 0
Accepted
time: 186ms
memory: 7912kb

input:

1000 499500
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1...

output:

818794637

result:

ok 1 number(s): "818794637"

Test #16:

score: 0
Accepted
time: 57ms
memory: 7960kb

input:

1000 10000
1 14
1 53
1 132
1 139
1 174
1 237
1 246
1 278
1 302
1 349
1 353
1 396
1 465
1 652
1 698
1 706
1 753
1 845
1 848
1 862
1 884
1 911
1 1000
2 31
2 57
2 80
2 118
2 182
2 195
2 198
2 344
2 347
2 585
2 591
2 597
2 611
2 623
2 642
2 672
2 694
2 704
2 731
2 770
2 852
2 923
2 974
3 8
3 12
3 59
3 8...

output:

128609606

result:

ok 1 number(s): "128609606"

Test #17:

score: 0
Accepted
time: 2ms
memory: 7940kb

input:

1000 1000
1 179
1 188
1 421
3 14
3 676
4 386
4 740
4 797
6 164
6 374
7 161
8 34
8 359
8 402
9 188
9 452
9 708
10 278
10 425
10 758
11 242
12 338
12 402
12 875
13 22
13 313
13 340
13 711
14 624
14 729
14 857
15 493
15 611
16 540
17 628
17 745
18 598
18 844
19 453
20 147
20 527
21 62
21 313
22 560
22 ...

output:

890151081

result:

ok 1 number(s): "890151081"

Test #18:

score: 0
Accepted
time: 0ms
memory: 6912kb

input:

1000 100
7 816
19 226
20 568
24 530
26 137
33 640
61 149
67 521
77 701
79 976
80 313
84 958
84 991
85 555
95 428
107 181
108 800
110 898
120 481
136 737
147 275
148 970
153 919
163 326
177 842
178 257
189 808
195 1000
200 580
204 509
207 746
211 419
216 387
219 534
225 796
232 633
238 769
248 997
25...

output:

57698280

result:

ok 1 number(s): "57698280"

Test #19:

score: -100
Wrong Answer
time: 86ms
memory: 7956kb

input:

1000 100000
1 2
1 27
1 34
1 41
1 53
1 60
1 66
1 81
1 82
1 84
1 88
1 93
1 97
1 100
1 101
1 107
1 111
1 112
1 119
1 126
1 127
1 128
1 132
1 133
1 134
1 139
1 153
1 155
1 177
1 182
1 185
1 187
1 192
1 197
1 214
1 215
1 217
1 221
1 227
1 230
1 231
1 232
1 235
1 240
1 243
1 246
1 247
1 248
1 254
1 258
1 ...

output:

202675993

result:

wrong answer 1st numbers differ - expected: '818794637', found: '202675993'