想太多,结果fst了 呜呜呜
在一个 N * M 的矩阵里面每行选一个数,使得选出来的这n个数的异或值大于0 .
直接枚举就好了
#include <bits/stdc++.h>
using namespace std;
const int N = 550;
int n,m;
int a[N][N];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i = 0;i<n;i++)
for(int j = 0;j<m;j++)
cin>>a[i][j];
int tmp = 0;
for(int i = 0;i<n;i++) tmp ^= a[i][0];
if(tmp > 0) {
cout<<"TAK"<<endl;
for(int i = 0;i<n;i++) cout<<1<<' ';
return 0;
}
for(int i = 0;i<n;i++)
for(int j = 1;j<m;j++){
tmp ^= a[i][0];
tmp ^= a[i][j];
if(tmp > 0){
cout<<"TAK"<<endl;
for(int k = 0;k<i;k++) cout<<1<<' ';
cout<<j+1<<' ';
for(int k = i+1;k<n;k++) cout<<1<<' ';
return 0;
}
}
cout<<"NIE";
return 0;
}