求调
查看原帖
求调
892084
xinxin2022楼主2024/7/10 11:08

蒟蒻到底少看了什么?

#include<bits/stdc++.h>
using namespace std;
vector<int> p[100005];
vector<int> g[100005];
int a[100005],ans,start,maxn;
int u,v;
int n;
int r;
inline bool dfs(int now){
    bool flag=a[now];
    for(int i=0;i<p[now].size();i++){
        if(dfs(p[now][i])){
            if(a[now]==0&&!flag) ans++;
            flag=true;
        }
    }
    //if(flag&&a[now]==0) ans++;
    return flag;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>r;
        a[i]=r;
    }
    for(int i=1;i<n;i++){
        cin>>u>>v;
        p[u].push_back(v);
        g[v].push_back(u);
        if(p[u].size()>maxn) maxn=p[u].size(),start=u;
    }
    dfs(start);
    cout<<ans;
    return 0;
}

00 分。

2024/7/10 11:08
加载中...