求助玄学错误
  • 板块灌水区
  • 楼主starfallen
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/28 17:45
  • 上次更新2024/3/28 20:28:16
查看原帖
求助玄学错误
836542
starfallen楼主2024/3/28 17:45
//90pts
#include<bits/stdc++.h>
using namespace std;
int sg[200 + 10][200 + 10], n, m, T;
bool f[200 + 10];
int SG(int n, int m) {
	if (sg[n][m] != -1) return sg[n][m];
	memset(f, 0, sizeof f);
	for (int i = 2; i <= n - 2; ++i) f[SG(i, m) ^ SG(n - i, m)] = 1;
	for (int i = 2; i <= m - 2; ++i) f[SG(n, i) ^ SG(n, m - i)] = 1;
	for (int i = 0;; ++i) if (!f[i]) return sg[n][m] = i;
}
int main() {
	ios_base::sync_with_stdio(false);
	memset(sg, -1, sizeof sg);
	sg[2][2] = sg[3][2] = sg[2][3] = 0;
	while (cin >> n >> m) {
		cout << (SG(n, m) ? "WIN" : "LOSE") << endl;
	}
	return 0;
}
/*100pts
#include<bits/stdc++.h>
using namespace std;
int sg[200 + 10][200 + 10], n, m, T;
int SG(int n, int m) {
	if (sg[n][m] != -1) return sg[n][m];
	bool f[200 + 10];
	memset(f, 0, sizeof f);
	for (int i = 2; i <= n - 2; ++i) f[SG(i, m) ^ SG(n - i, m)] = 1;
	for (int i = 2; i <= m - 2; ++i) f[SG(n, i) ^ SG(n, m - i)] = 1;
	for (int i = 0;; ++i) if (!f[i]) return sg[n][m] = i;
}
int main() {
	ios_base::sync_with_stdio(false);
	memset(sg, -1, sizeof sg);
	sg[2][2] = sg[3][2] = sg[2][3] = 0;
	while (cin >> n >> m) {
		cout << (SG(n, m) ? "WIN" : "LOSE") << endl;
	}
	return 0;
}
*/

这两份代码之间只有 f 数组定义的位置不同,那么我每次都 memset 了呀,哪里错了?

原题链接

2024/3/28 17:45
加载中...