2 条题解

  • 0
    @ 2025-10-8 16:49:51

    解析:将位置i上的H看作一堆规模为i的石子,将i与j(j<i)同时翻转,所得到的状态对应的源模型中nim中从一堆数目为i的石子中取i个,又还回来了j个,相当于取了i-j个。PS:如果原来j为h,那么这样理解:只不过隐藏了两堆一样数目的石子。

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n, x, res;
        scanf("%d", &n);
        res = 0;
        for(int i = 1; i <= n; ++i){
            scanf("%d", &x);
            res ^= x; 
        }
        if(res > 0) printf("Yes\n");
        else printf("No\n"); 
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:49:46
      /*
      解析:将位置i上的H看作一堆规模为i的石子,将i与j(j<i)同时翻转,
      所得到的状态对应的源模型中nim中从一堆数目为i的石子中取i个,又还回来了j个,
      相当于取了i-j个。PS:如果原来j为h,那么这样理解:只不过隐藏了两堆一样数目的石子。
      */
      
      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
          int n,x,res;
          scanf("%d",&n);
          res=0;
          for(int i=1;i<=n;++i){
              scanf("%d",&x);
              res^=x; 
          }
          if(res>0) printf("Yes\n");
          else printf("No\n"); 
          return 0;
      }
      • 1

      *【博弈SG】模型一:翻转硬币(元问题)

      信息

      ID
      364
      时间
      1000ms
      内存
      128MiB
      难度
      5
      标签
      递交数
      120
      已通过
      49
      上传者