您的位置:首页 > 其它

【Hello 2018 B】Christmas Spruce

2018-01-09 09:50 274 查看

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


在这里输入题意

【题解】


写个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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: