1 条题解
-
1
#include<iostream> #include<bitset> #include<algorithm> #include<cmath> using namespace std; int n, m; bitset<1006> a[2006]; void solve(){ int c,r; int k=n; for(c=0,r=0;c<n;c++){ int t=r; int i; for(i=r;i<m;i++){ if(a[i][c]){ t=i; break; } } if(i==m){ break; } if(i+1>k){ k=i+1; } swap(a[r],a[t]); for(int i=r+1;i<m;i++){ if(a[i][c]){ a[i]^=a[r]; } } r++; } if(r<n){ cout << "Cannot Determine" << endl; } else{ cout<<k<<endl; for(int i=n-2;i>=0;i--){ for(int j=i+1;j<n;j++){ a[i][n]=a[i][n]^(a[i][j]*a[j][n]); } } for(int i=0;i<n;i++){ if(a[i][n]){ cout<<"?y7M#"<<endl; } else{ cout<<"Earth"<<endl; } } } } int main(){ cin>>n>>m; for(int i=0;i<m;i++){ string t; cin>>t; for(int j=0;j<n;j++){ a[i][j]=t[j]-'0'; } int k; cin>>k; a[i][n]=k; } solve(); return 0; }//不是没人做吗?
信息
- ID
- 6485
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 5
- 标签
- 递交数
- 4
- 已通过
- 2
- 上传者