Submission #40959341


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=15,MAXM=150,mod=1e9+7;
void add(int& x,int y){x=(x+y)%mod;}
void sub(int& x,int y){x=(x-y+mod)%mod;}
int addv(int x,int y){return (x+y)%mod;}
int subv(int x,int y){return (x-y+mod)%mod;}
int mypow(int a,int n){
	if(!n)return 1;
	int tmp=mypow(a,n/2);tmp=1ll*tmp*tmp%mod;
	if(n&1)tmp=1ll*tmp*a%mod;return tmp;
}

int n,m,G[MAXN][MAXN],ans;
int cnt[MAXN][1<<MAXN];

int u[MAXM],v[MAXM];

int fv[MAXN],gv[MAXN],dp[1<<MAXN];

int main(){
	cin>>n>>m;

	rep(i,0,n-1){fv[i]=(1<<i)-1;gv[i]=(1<<i);}

	rep(i,0,m-1){
		cin>>u[i]>>v[i];
		u[i]--;v[i]--;
	}
	ans=mypow(2,m);

	rep(i,0,m-1)G[u[i]][v[i]]=1;

	rep(i,0,n-1)rep(j,0,(1<<n)-1){
		rep(k,0,n-1)if((j>>k&1) && G[i][k])cnt[i][j]++;
	}

	dp[0]=1;

	rep(S,0,(1<<n)-1)if(dp[S]){
		int R=((1<<n)-1)^S;
		for(int T=R;T;T=(T-1)&R){
			if((T&1) != (T>>1&1))continue;
			int ways=1;
			rep(i,0,n-1)if(!(S>>i&1) && !(T>>i&1)){
				ways=1ll*ways*fv[cnt[i][T]]%mod;
			}
			rep(i,0,n-1)if(T>>i&1){
				ways=1ll*ways*gv[cnt[i][R^T]]%mod;
			}
			add(dp[S^T],1ll*dp[S]*ways%mod);
		}
	}

	sub(ans,dp[(1<<n)-1]);
	cout<<ans<<endl;;

    return 0;
}

Submission Info

Submission Time
Task F - Games on DAG
User Crying
Language C++ (GCC 9.2.1)
Score 1600
Code Size 1550 Byte
Status AC
Exec Time 171 ms
Memory 5340 KB

Compile Error

./Main.cpp: In function ‘int mypow(int, int)’:
./Main.cpp:23:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   23 |  if(n&1)tmp=1ll*tmp*a%mod;return tmp;
      |  ^~
./Main.cpp:23:27: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
   23 |  if(n&1)tmp=1ll*tmp*a%mod;return tmp;
      |                           ^~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1600 / 1600
Status
AC × 4
AC × 40
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 6 ms 3416 KB
0_01.txt AC 3 ms 3508 KB
0_02.txt AC 2 ms 3592 KB
0_03.txt AC 2 ms 3408 KB
1_00.txt AC 2 ms 3516 KB
1_01.txt AC 34 ms 3760 KB
1_02.txt AC 29 ms 3704 KB
1_03.txt AC 170 ms 5208 KB
1_04.txt AC 165 ms 5208 KB
1_05.txt AC 170 ms 5332 KB
1_06.txt AC 77 ms 5132 KB
1_07.txt AC 168 ms 5340 KB
1_08.txt AC 170 ms 5156 KB
1_09.txt AC 168 ms 5324 KB
1_10.txt AC 169 ms 5320 KB
1_11.txt AC 127 ms 5188 KB
1_12.txt AC 169 ms 5328 KB
1_13.txt AC 167 ms 5192 KB
1_14.txt AC 168 ms 5320 KB
1_15.txt AC 137 ms 5324 KB
1_16.txt AC 126 ms 5188 KB
1_17.txt AC 168 ms 5264 KB
1_18.txt AC 77 ms 5192 KB
1_19.txt AC 171 ms 5324 KB
1_20.txt AC 37 ms 4716 KB
1_21.txt AC 5 ms 3584 KB
1_22.txt AC 71 ms 5256 KB
1_23.txt AC 73 ms 5216 KB
1_24.txt AC 26 ms 4224 KB
1_25.txt AC 2 ms 3448 KB
1_26.txt AC 121 ms 5320 KB
1_27.txt AC 10 ms 3632 KB
1_28.txt AC 37 ms 4296 KB
1_29.txt AC 26 ms 3936 KB
1_30.txt AC 5 ms 3584 KB
1_31.txt AC 161 ms 5308 KB
1_32.txt AC 27 ms 3992 KB
1_33.txt AC 7 ms 3724 KB
1_34.txt AC 38 ms 4324 KB
1_35.txt AC 27 ms 4016 KB