HDU 4707 Pet(DFS:树深度相关)
来源:互联网 发布:python 模拟访问ip 编辑:程序博客网 时间:2024/05/17 00:57
HDU 4707 Pet(DFS:树深度相关)
http://acm.hdu.edu.cn/showproblem.php?pid=4707
题目描述:
给出一个具有N(0<N<=100000)个节点的树(节点编号从0到N-1),然后给出一个距离D(0<D<N),求出距离0号节点的距离大于D的节点个数。树中相邻节点的距离为1。
输入:首先是一个T(0<T<=10),表实例个数。对于每个实例,首先是一行N和D,然后是N-1行(X,Y),表示树的每条边。
输出:输出距离0号节点距离大于D的节点总数。
分析:
从0号节点开始做一次DFS,记录距离大于D的节点数即可。本题采用的就是不走连接父节点边的策略判重。否则就需要一个vis数组来判重。
AC代码:
#include<cstdio>#include<vector>using namespace std;const int maxn=100000+100;vector<int> G[maxn];int sum,n,d;void dfs(int i,int dep,int fa){ if(dep>d) sum++; int m=G[i].size(); for(int j=0;j<m;j++)if(fa!=G[i][j]) dfs(G[i][j],dep+1,i);}int main(){ int t; scanf("%d",&t); while(t--) { sum=0; scanf("%d %d",&n,&d); for(int i=0;i<n;i++) G[i].clear(); for(int i=0;i<n-1;i++) { int x,y; scanf("%d%d",&x,&y); G[x].push_back(y); G[y].push_back(x); } dfs(0,0,-1); printf("%d\n",sum); } return 0;}
0 0
- HDU 4707 Pet(DFS:树深度相关)
- HDU 4707 Pet (DFS)
- hdu 4707 Pet(dfs)
- hdu 4707 Pet(dfs,bfs)
- HDU 4707 Pet(DFS(深度优先搜索)+BFS(广度优先搜索))
- hdu 4707 Pet【BFS求树的深度】
- HDU 4707 Pet(BFS,统计树节点深度)
- HDU 4707--Pet【DFS && 邻接表】
- hdu 4707 Pet(DFS && 邻接表)
- hdu 4707 Pet 树形DP/DFS 简单题
- HDU 4707 Pet 图的遍历(BFS和DFS)
- hdu 4707 pet acm
- hdu 4707 Pet
- hdu - 4707 - Pet
- hdu 4707 Pet 水
- hdu(4707) Pet
- Hdu 4707 Pet -- 树形
- HDU 4707 Pet
- Java中Split函数的用法技巧
- Ubuntu下安装国际版qq
- 蓝桥杯 【入门训练】 圆的面积
- HDU4709 聚集(求三角形面积)
- cocos2dx之CCLayerColor、CCLayerGradient
- HDU 4707 Pet(DFS:树深度相关)
- windows下的shutdown命令
- POJ1656
- POJ2092
- BoundsChecker使用说明
- POJ2231
- POJ2371
- Linux文件误删除恢复操作
- POJ2388