【Hello 2018 B】Christmas Spruce

【链接】 我是链接,点我呀:)
【题意】

在这里输入题意

【题解】

写个dfs看看是不是每个节点都有3个叶子节点就可以了。

【代码】

#include <bits/stdc++.h>
using namespace std;

const int N = 1e3;

int n;
vector <int> g[N+10];
bool ok = true;

int dfs(int x){
    if ((int) g[x].size()==0){
        return 1;
    }
    int len = g[x].size();
    int cnt = 0;
    for (int i = 0;i < len;i++){
        int y = g[x][i];
        if (dfs(y)) cnt++;
    }
    if (cnt<3) ok = false;
    return 0;
}

int main(){
	#ifdef LOCAL_DEFINE
	    freopen("rush_in.txt", "r", stdin);
	#endif
	ios::sync_with_stdio(0),cin.tie(0);
    cin >> n;
    for (int i= 2;i <= n;i++){
        int p;
        cin>>p;
        g[p].push_back(i);
    }
    dfs(1);
    if(ok){
       cout <<"Yes"<<endl;
    }else{
        cout <<"No"<<endl;
    }
	return 0;
}
posted @ 2018-01-09 09:50  AWCXV  阅读(106)  评论(0编辑  收藏  举报