Submission #1365507
Source Code Expand
#include <cstdio> #include <cstdlib> #include <algorithm> #include <vector> #include <cstring> #include <functional> #include <queue> #include <cmath> #include <set> #include <map> #include <string> #define SIZE 20 #define BT 1<<16 #define MOD 1000000007 using namespace std; typedef long long int ll; typedef pair <int,int> P; ll dp[BT],rt[SIZE]; ll nxt[BT],memo[SIZE][SIZE]; ll cnt[SIZE][BT]; ll nt[BT]; bool use[SIZE][SIZE]; int main() { int n,m; scanf("%d %d",&n,&m); for(int i=0;i<m;i++) { int x,y; scanf("%d %d",&x,&y);x--,y--; use[x][y]=true; } for(int i=0;i<n;i++) { for(int S=0;S<1<<n;S++) { cnt[i][S]=0; for(int j=0;j<n;j++) { if(use[i][j]&&(S>>j&1)) { cnt[i][S]=(cnt[i][S]*2LL+1)%MOD; } } } } for(int S=0;S<1<<n;S++) { nt[S]=1; for(int i=0;i<n;i++) { if(S>>i&1) { for(int j=i+1;j<n;j++) { if(S>>j&1) { if(use[i][j]) nt[S]=nt[S]*2LL%MOD; } } } } } memset(dp,0,sizeof(dp)); dp[0]=1; ll ret=0; for(int i=0;i<n;i++) { memset(nxt,0,sizeof(nxt)); for(int S=0;S<1<<n;S++) { if(dp[S]==0) continue; int T=(1<<n)-S-1; for(int K=T;K>0;K=T&(K-1)) { int zan=T-K; ll way=dp[S]; for(int j=0;j<n;j++) { if(zan>>j&1) { way=way*cnt[j][K]%MOD; } else if(K>>j&1) { way=way*(cnt[j][zan]+1)%MOD; } } nxt[S+K]+=way; if(nxt[S+K]>=MOD) nxt[S+K]>=MOD; if((K>>0&1)&&(K>>1&1)) { ret+=way*nt[zan]%MOD; if(ret>=MOD) ret-=MOD; } } } for(int S=0;S<1<<n;S++) dp[S]=nxt[S]; } ll all=1; for(int i=0;i<m;i++) all=all*2LL%MOD; printf("%lld\n",(all-ret+MOD)%MOD); return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Games on DAG |
User | yutaka1999 |
Language | C++14 (GCC 5.4.1) |
Score | 1600 |
Code Size | 1790 Byte |
Status | AC |
Exec Time | 629 ms |
Memory | 8320 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:30:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d",&n,&m); ^ ./Main.cpp:34:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d",&x,&y);x--,y--; ^
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1600 / 1600 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt |
All | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_00.txt | AC | 1 ms | 1152 KB |
0_01.txt | AC | 1 ms | 1152 KB |
0_02.txt | AC | 2 ms | 3200 KB |
0_03.txt | AC | 2 ms | 3200 KB |
1_00.txt | AC | 1 ms | 1152 KB |
1_01.txt | AC | 25 ms | 8320 KB |
1_02.txt | AC | 25 ms | 8320 KB |
1_03.txt | AC | 629 ms | 8320 KB |
1_04.txt | AC | 586 ms | 8320 KB |
1_05.txt | AC | 629 ms | 8320 KB |
1_06.txt | AC | 224 ms | 8320 KB |
1_07.txt | AC | 487 ms | 8320 KB |
1_08.txt | AC | 629 ms | 8320 KB |
1_09.txt | AC | 559 ms | 8320 KB |
1_10.txt | AC | 589 ms | 8320 KB |
1_11.txt | AC | 402 ms | 8320 KB |
1_12.txt | AC | 605 ms | 8320 KB |
1_13.txt | AC | 620 ms | 8320 KB |
1_14.txt | AC | 625 ms | 8320 KB |
1_15.txt | AC | 463 ms | 8320 KB |
1_16.txt | AC | 398 ms | 8320 KB |
1_17.txt | AC | 629 ms | 8320 KB |
1_18.txt | AC | 200 ms | 8320 KB |
1_19.txt | AC | 628 ms | 8320 KB |
1_20.txt | AC | 30 ms | 8320 KB |
1_21.txt | AC | 5 ms | 5504 KB |
1_22.txt | AC | 146 ms | 8320 KB |
1_23.txt | AC | 171 ms | 8320 KB |
1_24.txt | AC | 21 ms | 7808 KB |
1_25.txt | AC | 3 ms | 5248 KB |
1_26.txt | AC | 335 ms | 8320 KB |
1_27.txt | AC | 10 ms | 7424 KB |
1_28.txt | AC | 24 ms | 8320 KB |
1_29.txt | AC | 66 ms | 7552 KB |
1_30.txt | AC | 5 ms | 7424 KB |
1_31.txt | AC | 526 ms | 8320 KB |
1_32.txt | AC | 62 ms | 7552 KB |
1_33.txt | AC | 8 ms | 7424 KB |
1_34.txt | AC | 59 ms | 7808 KB |
1_35.txt | AC | 57 ms | 7552 KB |