Submission #43458607
Source Code Expand
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(a);i>=(b);i--)
#define op(x) ((x&1)?x+1:x-1)
#define odd(x) (x&1)
#define even(x) (!odd(x))
#define lc(x) (x<<1)
#define rc(x) (lc(x)|1)
#define lowbit(x) (x&-x)
#define mp(x,y) make_pair(x,y)
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
using namespace std;
const int MAXN = 17,mod = 998244353;
void add(ll& x, ll y) { x = (x + y >= mod) ? (x+y-mod) : (x+y); }
void sub(ll& x, ll y) { x = (x >= y) ? (x-y) : (x-y+mod); }
ll addv(ll x, ll y) { return (x + y >= mod) ? (x+y-mod) : (x+y); }
ll subv(ll x, ll y) { return (x >= y) ? (x-y) : (x-y+mod); }
//
ll P(ll x){
return odd(x) ? (mod-1) : (1);
}
int n,m,G[MAXN][MAXN];
ll dp[1<<MAXN],cnt[1<<MAXN];
struct DSU{
int fa[MAXN];
void init(){
iota(fa,fa+n,0);
}
int find(int x){
return (fa[x] == x) ? (x) : (fa[x] = find(fa[x]));
}
void merge(int x,int y){
fa[find(x)] = find(y);
}
}dsu;
int main(){
cin>>n>>m;
rep(i,1,m){
int u,v;cin>>u>>v;
u--;v--;
G[u][v] = G[v][u] = 1;
}
rep(mask,1,(1<<n)-1){
dsu.init();
rep(u,0,n-1)rep(v,u+1,n-1)if((mask>>u&1) && (mask>>v&1) && G[u][v]){
dsu.merge(u,v);
}
rep(u,0,n-1)if((mask>>u&1) && dsu.find(u) == u)cnt[mask]++;
}
dp[0] = 1;
rep(S,0,(1<<n)-1){
int U = ((1<<n)-1) ^ S;
for(int T = U;T;T = (T-1)&U){
add(dp[S^T],1ll*dp[S]*P(cnt[T]-1)%mod);
}
}
cout<<dp[(1<<n)-1]<<endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | Ex - Balance Scale |
| User | Crying |
| Language | C++ (GCC 9.2.1) |
| Score | 650 |
| Code Size | 1534 Byte |
| Status | AC |
| Exec Time | 559 ms |
| Memory | 5644 KB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 650 / 650 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt, test_62.txt, test_63.txt, test_64.txt, test_65.txt, test_66.txt, test_67.txt, test_68.txt, test_69.txt, test_70.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 5 ms | 3576 KB |
| sample_02.txt | AC | 2 ms | 3384 KB |
| sample_03.txt | AC | 28 ms | 3752 KB |
| test_01.txt | AC | 2 ms | 3428 KB |
| test_02.txt | AC | 3 ms | 3376 KB |
| test_03.txt | AC | 2 ms | 3548 KB |
| test_04.txt | AC | 2 ms | 3432 KB |
| test_05.txt | AC | 2 ms | 3512 KB |
| test_06.txt | AC | 5 ms | 3568 KB |
| test_07.txt | AC | 3 ms | 3460 KB |
| test_08.txt | AC | 3 ms | 3428 KB |
| test_09.txt | AC | 2 ms | 3604 KB |
| test_10.txt | AC | 3 ms | 3372 KB |
| test_11.txt | AC | 2 ms | 3428 KB |
| test_12.txt | AC | 15 ms | 3712 KB |
| test_13.txt | AC | 2 ms | 3428 KB |
| test_14.txt | AC | 13 ms | 3556 KB |
| test_15.txt | AC | 4 ms | 3444 KB |
| test_16.txt | AC | 2 ms | 3512 KB |
| test_17.txt | AC | 2 ms | 3616 KB |
| test_18.txt | AC | 3 ms | 3396 KB |
| test_19.txt | AC | 9 ms | 3640 KB |
| test_20.txt | AC | 11 ms | 3440 KB |
| test_21.txt | AC | 2 ms | 3540 KB |
| test_22.txt | AC | 3 ms | 3428 KB |
| test_23.txt | AC | 5 ms | 3640 KB |
| test_24.txt | AC | 1 ms | 3508 KB |
| test_25.txt | AC | 480 ms | 5428 KB |
| test_26.txt | AC | 512 ms | 5640 KB |
| test_27.txt | AC | 12 ms | 3560 KB |
| test_28.txt | AC | 53 ms | 3936 KB |
| test_29.txt | AC | 5 ms | 3496 KB |
| test_30.txt | AC | 314 ms | 5464 KB |
| test_31.txt | AC | 27 ms | 3688 KB |
| test_32.txt | AC | 71 ms | 4052 KB |
| test_33.txt | AC | 3 ms | 3440 KB |
| test_34.txt | AC | 2 ms | 3540 KB |
| test_35.txt | AC | 7 ms | 3556 KB |
| test_36.txt | AC | 429 ms | 5552 KB |
| test_37.txt | AC | 455 ms | 5484 KB |
| test_38.txt | AC | 464 ms | 5468 KB |
| test_39.txt | AC | 483 ms | 5592 KB |
| test_40.txt | AC | 419 ms | 5468 KB |
| test_41.txt | AC | 487 ms | 5576 KB |
| test_42.txt | AC | 502 ms | 5552 KB |
| test_43.txt | AC | 498 ms | 5484 KB |
| test_44.txt | AC | 530 ms | 5556 KB |
| test_45.txt | AC | 444 ms | 5560 KB |
| test_46.txt | AC | 391 ms | 5480 KB |
| test_47.txt | AC | 559 ms | 5472 KB |
| test_48.txt | AC | 476 ms | 5548 KB |
| test_49.txt | AC | 378 ms | 5620 KB |
| test_50.txt | AC | 527 ms | 5552 KB |
| test_51.txt | AC | 416 ms | 5644 KB |
| test_52.txt | AC | 336 ms | 5620 KB |
| test_53.txt | AC | 553 ms | 5532 KB |
| test_54.txt | AC | 486 ms | 5484 KB |
| test_55.txt | AC | 516 ms | 5608 KB |
| test_56.txt | AC | 393 ms | 5432 KB |
| test_57.txt | AC | 319 ms | 5628 KB |
| test_58.txt | AC | 350 ms | 5556 KB |
| test_59.txt | AC | 359 ms | 5552 KB |
| test_60.txt | AC | 369 ms | 5468 KB |
| test_61.txt | AC | 486 ms | 5644 KB |
| test_62.txt | AC | 334 ms | 5640 KB |
| test_63.txt | AC | 434 ms | 5616 KB |
| test_64.txt | AC | 534 ms | 5620 KB |
| test_65.txt | AC | 382 ms | 5644 KB |
| test_66.txt | AC | 324 ms | 5548 KB |
| test_67.txt | AC | 451 ms | 5620 KB |
| test_68.txt | AC | 446 ms | 5552 KB |
| test_69.txt | AC | 327 ms | 5592 KB |
| test_70.txt | AC | 432 ms | 5428 KB |