洛谷AC了
这里的数据一个RE找不出错了(帮帮忙)

#include <bits/stdc++.h>
using namespace std;
int val[100005],ans;
vector<vector<int>>M(100005);
bool dfs(int dep,int pre){
    bool flag=0;
    for(auto i=M[dep].begin();i!=M[dep].end();i++)
        if(*i!=pre&&dfs(*i,dep))flag=1;
    if(flag&&!val[dep])ans++;
    return val[dep]|flag;
}
int main(){
    ios::sync_with_stdio(false);
    int n,root;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>val[i];
        if(val[i])root=i;
    }
    for(int i=1;i<n;i++){
        int x,y;
        cin>>x>>y;
        M[x].push_back(y);
        M[y].push_back(x);
    }
    dfs(root,0);
    cout<<ans;
    return 0;
}

0 条评论

目前还没有评论...

信息

ID
1000
难度
7
分类
(无)
标签
递交数
1536
已通过
289
通过率
19%
被复制
29
上传者