Submission #2308472
Source Code Expand
#include<bits/stdc++.h> using namespace std; #define int long long #define rep(i,n) for(int i=0;i<(n);i++) #define pb push_back #define all(v) (v).begin(),(v).end() #define fi first #define se second typedef vector<int>vint; typedef pair<int,int>pint; typedef vector<pint>vpint; template<typename A,typename B>inline void chmin(A &a,B b){if(a>b)a=b;} template<typename A,typename B>inline void chmax(A &a,B b){if(a<b)a=b;} typedef bitset<300>bs; const int mod=1000000007; inline void add(int &a,int b){ a+=b; if(a>=mod)a-=mod; } int mpow(int n,int m){ int ret=1; while(m){ if(m&1)ret=ret*n%mod; n=n*n%mod; m>>=1; } return ret; } int dp[333][333]; int po[333]; signed main(){ po[0]=1; for(int i=1;i<333;i++)po[i]=po[i-1]*2%mod; int N; cin>>N; vector<bs>C(N); rep(i,N){ rep(j,N){ int c;cin>>c;C[i][j]=c; } } int r=0; rep(j,N){ int k=-1; for(int i=r;i<N;i++)if(C[i][j]){ k=i; break; } if(k==-1)continue; if(k!=r)swap(C[r],C[k]); for(int i=k+1;i<N;i++)if(C[i][j])C[i]^=C[r]; r++; } int ans=0; for(int k=r;k<=N;k++){ memset(dp,0,sizeof(dp)); dp[0][0]=1; for(int i=0;i<N;i++){ for(int j=0;j<=k;j++){ add(dp[i+1][j],dp[i][j]*po[j]%mod); if(j+1<=k)add(dp[i+1][j+1],dp[i][j]*(po[k]-po[j]+mod)%mod); } } int tmp=1; for(int i=0;i<k-r;i++)tmp=tmp*(po[N-r-i]-1)%mod; for(int i=0;i<k-r;i++)tmp=tmp*mpow(po[k-r-i]-1,mod-2)%mod; tmp=tmp*dp[N][k]%mod; tmp=tmp*mpow(po[N-k],N)%mod; ans=(ans+tmp)%mod; } cout<<ans<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | H - AB=C Problem |
User | latte0119 |
Language | C++14 (GCC 5.4.1) |
Score | 1500 |
Code Size | 1863 Byte |
Status | AC |
Exec Time | 165 ms |
Memory | 1152 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1500 / 1500 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | example0.txt, example1.txt |
All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, example0.txt, example1.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
000.txt | AC | 2 ms | 1152 KB |
001.txt | AC | 2 ms | 1152 KB |
002.txt | AC | 2 ms | 1152 KB |
003.txt | AC | 2 ms | 1152 KB |
004.txt | AC | 2 ms | 1152 KB |
005.txt | AC | 2 ms | 1152 KB |
006.txt | AC | 2 ms | 1152 KB |
007.txt | AC | 1 ms | 1152 KB |
008.txt | AC | 1 ms | 1152 KB |
009.txt | AC | 2 ms | 1152 KB |
010.txt | AC | 2 ms | 1152 KB |
011.txt | AC | 2 ms | 1152 KB |
012.txt | AC | 2 ms | 1152 KB |
013.txt | AC | 1 ms | 1152 KB |
014.txt | AC | 6 ms | 1152 KB |
015.txt | AC | 17 ms | 1152 KB |
016.txt | AC | 5 ms | 1152 KB |
017.txt | AC | 63 ms | 1152 KB |
018.txt | AC | 6 ms | 1152 KB |
019.txt | AC | 2 ms | 1152 KB |
020.txt | AC | 20 ms | 1152 KB |
021.txt | AC | 101 ms | 1152 KB |
022.txt | AC | 7 ms | 1152 KB |
023.txt | AC | 146 ms | 1152 KB |
024.txt | AC | 27 ms | 1152 KB |
025.txt | AC | 118 ms | 1152 KB |
026.txt | AC | 88 ms | 1152 KB |
027.txt | AC | 136 ms | 1152 KB |
028.txt | AC | 164 ms | 1152 KB |
029.txt | AC | 111 ms | 1152 KB |
030.txt | AC | 95 ms | 1152 KB |
031.txt | AC | 124 ms | 1152 KB |
032.txt | AC | 165 ms | 1152 KB |
033.txt | AC | 71 ms | 1152 KB |
034.txt | AC | 165 ms | 1152 KB |
035.txt | AC | 86 ms | 1152 KB |
036.txt | AC | 17 ms | 1152 KB |
037.txt | AC | 15 ms | 1152 KB |
038.txt | AC | 162 ms | 1152 KB |
039.txt | AC | 19 ms | 1152 KB |
example0.txt | AC | 1 ms | 1152 KB |
example1.txt | AC | 2 ms | 1152 KB |