2 solutions

  • 1
    @ 2026-3-5 19:18:51
    
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    bool b[N];
    vector<int> v[N];
    int c[N];
    void dfs(int u)
    {
        b[u]=1-b[u];
        for(auto j:v[u])
        {
            dfs(j);
        }
    }
    int main()
    {
        int n;
        cin>>n;
        if(n<=1000)
        {
            for(int i=1;i<=n-1;i++)
            {
                int a;
                cin>>a;
                v[a].push_back((i+1));
            }
            for(int i=1;i<=n;i++)
            {
                char c;
                cin>>c;
                if(c=='1')
                {
                    b[i]=1;//黑
                }
                else
                {
                    b[i]=0;//白
                }
            }
            int q;
            cin>>q;
            while(q--)
            {
                int t;
                cin>>t;
                dfs(t);
            }
            for(int i=1;i<=n;i++)
            {
                cout<<b[i];
            }
        }
        else
        {
            for(int i=2;i<=n;i++)
            {
                int x;
                cin>>x;
            }
            for(int i=1;i<=n;i++)
            {
                char c;
                cin>>c;
                if(c=='1')
                {
                    b[i]=1;//黑
                }
                else
                {
                    b[i]=0;//白
                }
            }
            int q;
            cin>>q;
            for(int i=1;i<=q;i++)
            {
                int x;
                cin>>x;
                c[x]++;
            }
            for(int i=1;i<=n;i++)
            {
                c[i]=c[i-1]+c[i];
                if(c[i]%2==1)
                {
                    b[i]=1-b[i];
                }
                else
                {
                    ;
                }
            }
            for(int i=1;i<=n;i++)
            {
                cout<<b[i];
            }
        }
        return 0;
    }
    

    Information

    ID
    2188
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    # Submissions
    22
    Accepted
    3
    Uploaded By