记录编号 38827 评测结果 AAAAAAAAAA
题目名称 [USACO Hol10] 石木游戏 最终得分 100
用户昵称 GravatarCzb。 是否通过 通过
代码语言 C++ 运行时间 0.026 s
提交时间 2012-06-15 09:05:51 内存使用 0.47 MiB
显示代码纯文本
#include<stdio.h>
#include<vector>
#include<queue>
 
using namespace std;
 
int n,m,k,ans,a[10001];
 
bool flag[10001];
 
vector <int> v[10001];
 
queue <int> q;
 
int main()
{
    freopen("rocks.in","r",stdin);
    freopen("rocks.out","w",stdout);
    int i,j,x,y;
    scanf("%d%d%d",&n,&m,&k);
    for(i=2;i<=n;i++)
    {
        scanf("%d%d",&x,&a[i]);
        a[i]=a[i]%(k+1);
        v[x].push_back(i);
    }
    q.push(1);
    while(!q.empty())
    {
        x=q.front();
        for(i=0;i<v[x].size();i++)
        {
            q.push(v[x][i]);
            flag[v[x][i]]=!flag[x];
        }
        q.pop();
    }
    for(i=1;i<=n;i++)
    {
        if(flag[i])
        {
            ans^=a[i];
        }
    }
    for(i=1;i<=m;i++)
    {
        scanf("%d%d",&x,&y);
        if(flag[x])
        {
            ans^=a[x];
            a[x]=y%(k+1);
            ans^=a[x];
        }
        if(ans)printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}