PAT甲题题解-1004. Counting Leaves (30)-统计每层叶子节点个数+dfs
2017-04-18 14:56
513 查看
统计每层的叶子节点个数
建树,然后dfs即可
View Code
建树,然后dfs即可
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <vector> using namespace std; /* 统计每层的叶子节点个数 建树,然后dfs即可 */ const int maxn=105; int n,m; int layer[maxn]; //统计每层的叶子节点个数 int maxlayer=0; vector<int>node[maxn]; void dfs(int u,int level){ int num=node[u].size(); if(num==0){ layer[level]++; if(level>maxlayer) maxlayer=level; return; } for(int i=0;i<node[u].size();i++){ dfs(node[u][i],level+1); } } int main() { memset(layer,0,sizeof(layer)); scanf("%d %d",&n,&m); int u,v,k; for(int i=0;i<m;i++){ scanf("%d %d",&u,&k); for(int i=0;i<k;i++){ scanf("%d",&v); node[u].push_back(v); } } dfs(1,0); printf("%d",layer[0]); for(int i=1;i<=maxlayer;i++) printf(" %d",layer[i]); return 0; }
View Code
相关文章推荐
- PAT (Advanced Level) 1053. Path of Equal Weight (30) 求树根到叶子和为所给数值的路径,DFS后排序
- 【PAT 1004 Acute Stroke (30)】& dfs
- 1030. Travel Plan (30)-PAT甲级真题(Dijkstra + DFS,输出路径,边权)
- UVA297建立完全四叉树统计叶子节点
- 1094. The Largest Generation (25)-(dfs,树的遍历,统计每层的节点数)
- PAT1030 Travel Plan (30)---DFS
- 1103. Integer Factorization (30)-PAT甲级真题(dfs深度优先)
- PAT 1068. Find More Coins (30) DFS,01背包
- PAT 1053. Path of Equal Weight (30) (dfs + 路径打印)
- 1004. Counting Leaves (30)-PAT甲级真题(bfs,dfs,树的遍历,层序遍历)
- PAT 1018. Public Bike Management (30)(Dijkstra,dfs根据pre[]输出路径,双向计算)
- PAT 1018. Public Bike Management (30) DFS求解多最短路问题
- PAT - 甲级 - 1018. Public Bike Management (30)(Dijkstra+DFS)
- PAT 1079. Total Sales of Supply Chain (25) 树的叶子节点层数计算
- PAT 1090. Highest Price in Supply Chain (25) 从叶子节点出发去求树的高度
- hdu 4705 dfs统计更新节点信息
- PAT - 甲级 - 1030. Travel Plan (30) (Dijkstra+DFS)
- PAT 1103. Integer Factorization (30) DFS+树状数组。还是人家的代码好
- PAT 1131. Subway Map (30) DFS
- PAT 1115. Counting Nodes in a BST (30) 搜索树建立 + 各层节点数量判断