1 条题解

  • 1
    @ 2026-02-26 08:50:15

    #include<bits/stdc++.h>
    using namespace std;
    int shu[35][5],n,visited[35],k,bw[1000],q,cg;
    char s;
    void dfs(int Poi)
    {

    visited[Poi]=1;
    for (int i=2;i<=3;i++)
    {
    if (shu[Poi][i]!=0&&!visited[shu[Poi][i]])
    {

    if(bw[shu[Poi][i]]) bw[shu[Poi][i]]=0;
    else bw[shu[Poi][i]]=1;
    dfs(shu[Poi][i]);
    }
    }
    }
    int main()
    {
    cin>>n;
    for(int i=1;i<=n-1;i++)
    {
    cin>>k;
    shu[i][1]=i;
    if (shu[k][2]!=0)shu[k][3]=i+1;
    else shu[k][2]=i+1;
    }
    shu[n][1]=n;
    for (int i=1;i<=n;i++) cin>>s,bw[i]=s-48;
    cin>>q;
    for (int i=1;i<=q;i++)
    {
    cin>>cg;
    if(bw[cg]) bw[cg]=0;
    else bw[cg]=1;
    dfs(cg);
    memset(visited,0,sizeof(visited));
    }
    for (int i=1;i<=n;i++) cout<<bw[i];
    }

  • 1

信息

ID
2782
难度
4
分类
(无)
标签
递交数
66
已通过
27
通过率
41%
上传者