B3861题解
lizhengdong · · 题解
原题传送门
0.题解背景
WA 哦,这么水的暂无评定题,赶紧水一篇题解。
1.题目分析
题目意思很 easy,简单概括一下:
每个结点的权值都是
看完题目,很容易就能想到宽搜。
2.解题思路
瞅一眼数据,emm...,
3.AC code
贴代码啦!
#include<bits/stdc++.h>//万能的头
#define f(i,j,k) for(i=j;i<=k;i++)//作者懒地打for
using namespace std;
int n,i,j,t,w,x,b[1010],f[1010],xx;
vector<int>a[1010];
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);//简易·加速代码
cin>>n;
f(i,2,n)cin>>x,a[x].push_back(i);//建边
f(i,1,n){
f(j,1,n)f[j]=0;
t=w=1;//宽搜!启动!!!
b[1]=i;//入队
f[i]=1;//计入做过
while(t<=w){
x=b[t];//取出队头 及父亲
for(j=0;j<a[x].size();j++){
xx=a[x][j];//取出儿子
if(f[xx]==1)continue;
b[++w]=xx;f[xx]=1;//入队
}
t++;//出队
}
cout<<w<<"\n";//输出
}
return 0;//完成!!!
}
热烘烘的题解~~ 给个赞啦!