题意:
数一棵树中每一层叶子节点的个数
分析:
做法很简单,dfs即可.但我第一次写完一个测试点都没过去,错误原因也很离谱…
上代码:
int main(){
int n,m,id,node,num;
if(n==0) return 0;
scanf("%d %d",&n,&m);
for(int i=0;i<m;i++){
scanf("%d %d",&node,&num);
for(int j=0;j<num;j++){
scanf("%d",&id);
v[node].push_back(id);
}
}
dfs(1,0);
printf("%d",book[0]);
for(int i=1;i<=maxdepth;i++){
printf(" %d",book[i]);
}
return 0;
}
看那个if(n==0) return 0;
我写这句是由于题目中给了这句
The input ends with N being 0. That case must NOT be processed.
然后我写法也没啥问题(虽然这句可有可无)
但是!!
位置放错了啊!!!
我放在了输入n之前的位置,这不是有毛病mo5555555
应该放在输入之后才对啊!!!
然后debug了很久qaq
考试绝对不可以这样!!!要仔细!!!
还有一个问题 也要牢记在心不能再犯
scanf里面要记得写&!!!