扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
与普通(NIM)游戏不同的地方是限制了每次拿东西的个数,这个个数会给定在集合(S)中,也就是说每次拿的数量只能在集合(S)中。
现在就可以把每一堆石子看成是一个有向图了,最主要就是用记忆化搜索来计算每一堆石子的(SG)函数,然后用定理判断即可。
#include
#include
#include
#include
using namespace std;
const int N = 110, M = 10010;
int f[M], s[N];
int n, m;
int sg(int x) {
if (f[x] != -1) return f[x];
unordered_set
for (int i = 0; i< n; i++) {
int t = s[i];
if (x >= t) S.insert(sg(x - t));
}
for (int i = 0; ;i++) {
if (!S.count(i)) return f[x] = i;
}
}
int main() {
cin >>n;
for (int i = 0; i< n; i++) cin >>s[i];
cin >>m;
memset(f, -1, sizeof f);
int res = 0;
for (int i = 0; i< m; i++) {
int x; cin >>x;
res ^= sg(x);
}
puts(res == 0 ? "No" : "Yes");
return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流