题解0000001
2025-10-24 20:31:13
发布于:上海
#include <bits/stdc++.h>
using namespace std;
int n, m;
string str;
bool r;
bitset<1050> matrix[2020];
int GaussElimination(int n, int m){
int ans = -1;
for (int i=1; i<=n; i++){
int cur = i;
while(cur <= m && !matrix[cur].test(i)) cur++;
if (cur > m) return 0;
ans = max(ans, cur);
if (cur != i){
swap(matrix[i], matrix[cur]);
}
for (int j=1; j<=m; j++){
if (i != j && matrix[j].test(i)){
matrix[j] ^= matrix[i];
}
}
}
return ans;
}
int main(){
cin >> n >> m;
for (int i=1; i<=m; i++){
cin >> str >> r;
for (int j=0; j<n; j++){
matrix[i].set(j+1, str[j] == '1');
}
matrix[i].set(0, r);
}
int res = GaussElimination(n, m);
if (res){
cout << res << endl;
for (int i=1; i<=n; i++){
cout << (matrix[i].test(0) ? "?y7M#" : "Earth") << endl;
}
} else cout << "Cannot Determine" << endl;
return 0;
}
这里空空如也







有帮助,赞一个