首页 > 学院 > 开发设计 > 正文

1004. Counting Leaves (30)

2019-11-08 20:11:12
字体:
来源:转载
供稿:网友
#include<iostream>#include<vector>#include<queue>#include<iomanip>#define MAX 110std::vector<int> Node[MAX];int NC[MAX]={0};int root=01;std::queue<int> que;int depth;void bfs(){ que.push(root); for(depth=0;!que.empty();depth++) { int x=que.back(); while(que.front()!=x) { if(Node[que.front()].size()==0) NC[depth]++; for(std::vector<int>::iterator it=Node[que.front()].begin();it!=Node[que.front()].end();it++) { que.push(*it); } que.pop(); } if(Node[que.front()].size()==0) NC[depth]++; for(std::vector<int>::iterator it=Node[que.front()].begin();it!=Node[que.front()].end();it++) { que.push(*it); } que.pop(); }}int main(){ int n,line; std::cin>>n>>line; int id,num,child; for(int i=0;i<line;i++) { std::cin>>id>>num; for(int j=0;j<num;j++) { std::cin>>child; Node[id].push_back(child); } } bfs(); for(int t=0;t<depth-1;t++) std::cout<<NC[t]<<" "; std::cout<<NC[depth-1]<<std::endl;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表