2 条题解

  • 0
    @ 2025-10-8 16:58:31
    #include<bits/stdc++.h>
    using namespace std;
    const int N = 1e4+100;
    int w[N],dep[N],sg[1100];
    
    signed main()
    {
        ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
        int n,T,m;cin>>n>>T>>m;
        sg[0]=0;
        sg[1]=1;
        for(int i=2;i<=1000;i++)
        {
            unordered_map<int,bool> S;
            for(int j=1;j<=m;j++)
            {
                if(i-j<0) break;
                S[sg[i-j]]=True;
            }
            for(int j=0;;j++) if(!S[j]) {sg[i]=j;break;}
        }
        
        int res=0;
        memset(dep,0,sizeof(dep));
        for(int i=2,x;i<=n;i++)
        {
            cin>>x>>w[i];
            dep[i]=dep[x]+1;
            if(dep[i]&1) res^=sg[w[i]];
        }
        while(T--)
        {
            int x,y;cin>>x>>y;
            if(dep[x]&1) res^=sg[w[x]],w[x]=y,res^=sg[w[x]];
            if(res) cout<<"Yes\n";
            else cout<<"No\n";
        }
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:58:24
      #include<bits/stdc++.h>
      using namespace std;
      const int N = 1e4+100;
      int w[N],dep[N],sg[1100];
      
      signed main()
      {
          ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
          int n,T,m;cin>>n>>T>>m;
          sg[0]=0;
          sg[1]=1;
          for(int i=2;i<=1000;i++)
          {
              unordered_map<int,bool> S;
              for(int j=1;j<=m;j++)
              {
                  if(i-j<0) break;
                  S[sg[i-j]]=True;
              }
              for(int j=0;;j++) if(!S[j]) {sg[i]=j;break;}
          }
          
          int res=0;
          memset(dep,0,sizeof(dep));
          for(int i=2,x;i<=n;i++)
          {
              cin>>x>>w[i];
              dep[i]=dep[x]+1;
              if(dep[i]&1) res^=sg[w[i]];
          }
          while(T--)
          {
              int x,y;cin>>x>>y;
              if(dep[x]&1) res^=sg[w[x]],w[x]=y,res^=sg[w[x]];
              if(res) cout<<"Yes\n";
              else cout<<"No\n";
          }
          return 0;
      }
      • 1

      *【博弈SG】树上阶梯nim [USACO10HOL] Rocks and Trees G

      信息

      ID
      1791
      时间
      1000ms
      内存
      512MiB
      难度
      9
      标签
      递交数
      19
      已通过
      3
      上传者