集合-Nim游戏-创新互联

与普通(NIM)游戏不同的地方是限制了每次拿东西的个数,这个个数会给定在集合(S)中,也就是说每次拿的数量只能在集合(S)中。

成都做网站、网站设计中从网站色彩、结构布局、栏目设置、关键词群组等细微处着手,突出企业的产品/服务/品牌,帮助企业锁定精准用户,提高在线咨询和转化,使成都网站营销成为有效果、有回报的无锡营销推广。创新互联建站专业成都网站建设十余年了,客户满意度97.8%,欢迎成都创新互联客户联系。

现在就可以把每一堆石子看成是一个有向图了,最主要就是用记忆化搜索来计算每一堆石子的(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_setS;
  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元起,快前往官网查看详情吧


本文标题:集合-Nim游戏-创新互联
本文来源:http://pwwzsj.com/article/ieoch.html