Codeforces Round #506 (Div. 3) E

 Codeforces Round #506 (Div. 3) E

 dfs+贪心

复制代码
#include<bits/stdc++.h>

using namespace std;
typedef long long ll;
const int maxn = 200005;
int n,u,v;
int ans;
vector<int>M[maxn];
int dfs(int cur,int pre)
{
    int ret = 2;
    for(int i=0;i<M[cur].size();i++)
    {
        int nex = M[cur][i];
        if(pre == nex)continue;
        ret = min(ret,dfs(nex,cur));
    }
    if(ret == 0 && cur != 1 && pre != 1)ans++;
    return (ret+1)%3;
}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<n;i++){
        scanf("%d%d",&u,&v);
        M[u].push_back(v);
        M[v].push_back(u);
    }
    dfs(1,0);
    cout<<ans<<endl;
}
View Code
复制代码

 

posted on   solvit  阅读(205)  评论(0编辑  收藏  举报

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示