似乎所有hack都过了,还是10pts,可悬关
查看原帖
似乎所有hack都过了,还是10pts,可悬关
520544
Phrvth楼主2023/5/19 09:12
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 2e3 +7;

int n, m, ans;

bitset<MAXN> A[MAXN];

bool gss() {
	for (int i = 1; i <= n; i ++) {
		int tmp = i;
		while (tmp <= m && !A[tmp].test(i)) tmp ++;
		if (tmp > m) return false;
		if (tmp != i) swap(A[i], A[tmp]);
		ans = max(ans, tmp);
		for (int k = 1; k <= m; k ++) 
			if (i != k && A[k].test(i)) 
				A[k] ^= A[i];
	}
	return true;
}

int main () {
	cin >> n >> m;
	for (int i = 1; i <= m; i ++) {
		int cnt = 0;
		char s; s = getchar(); s = getchar();//吃掉空格
		while (s != ' ') {
			A[i].set(++ cnt, s - '0');
			s = getchar();
		}
		s = getchar();
		A[i].set(++ cnt, s - '0');
	}
	if (! gss()) cout << "Cannot Determine", exit(0);
	cout << ans << '\n';
	for (int i = 1; i <= n; i ++)
		cout << (A[i].test(n + 1) == 0 ? "Earth\n" : "?y7M#\n");
	return 0;
}
2023/5/19 09:12
加载中...