QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#216908 | #6555. Sets May Be Good | 275307894a | WA | 186ms | 7960kb | C++14 | 1.4kb | 2023-10-16 08:06:53 | 2023-10-16 08:06:53 |
Judging History
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';
}
詳細信息
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'