1004. Counting Leaves (30)
2017-02-15 18:27
295 查看
#include<iostream> #include<vector> #include<queue> #include<iomanip> #define MAX 110 std::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; }
相关文章推荐
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)-PAT甲级真题(bfs,dfs,树的遍历,层序遍历)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30) 树的遍历 DFS BFS
- 1004. Counting Leaves (30)
- 1004. Counting Leaves (30)