1 条题解

  • 1
    @ 2023-3-14 21:37:13
    #include <cstdio>
    #define maxn 10005
    #define maxL 1005
    using namespace std;
     
    int n,T,L;
    int r[maxn],prt[maxn],dep[maxn];
    int sg[maxL];
     
    int x;
    inline bool Solve(int pos,int chg)
    {
        if(!(dep[pos]&1))
            return x;
        x^=sg[r[pos]];
        x^=sg[r[pos]=chg];
        return x;
    }
     
    int main()
    {
        scanf("%d%d%d",&n,&T,&L);
        register int i;
        int a,b;
        for(i=1;i<=1000;++i)
            sg[i]=i%(L+1);
        for(i=2;i<=n;++i)
        {
            scanf("%d%d",&prt[i],&r[i]);
            dep[i]=dep[prt[i]]+1;
            if(dep[i]&1)
                x^=sg[r[i]];
        }
        for(i=1;i<=T;++i)
        {
            scanf("%d%d",&a,&b);
            if(Solve(a,b))
                printf("Yes\n");
            else
                printf("No\n");
        }
        return 0;
    }
    

    简简单单,轻轻松松!

    • 1

    信息

    ID
    862
    时间
    1000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者