hdu 5423 Rikka with Tree(dfs)
2015-08-31 21:12
369 查看
解析:
显然一棵树是独特的当且仅当任意处于每一个深度的点数是”1 1 1 1 … 1 1 x”。所以直接DFS一下求出每一个点到根的距离然后判断一下就好了 。mymy codecode
[code]#include <cstdio> #include <cstring> #include <algorithm> #include <vector> #define pb push_back using namespace std; const int N = 1005; vector<int> G ; int depth , maxde; int n; void init() { memset(depth, 0, sizeof(depth)); maxde = 0; for(int i = 1; i <= n; i++) { G[i].clear(); } } void dfs(int u, int pre, int de) { maxde = max(de, maxde); depth[de]++; for(int i = 0; i < G[u].size(); i++) { int v = G[u][i]; if(v == pre) continue; dfs(v, u, de+1); } } bool judge() { for(int i = 1; i < maxde; i++) { if(depth[i] != 1) return false; } return true; } int main() { int u, v; while(scanf("%d", &n) != EOF) { init(); for(int i = 1; i < n; i++) { scanf("%d%d", &u, &v); G[u].pb(v); G[v].pb(u); } dfs(1, -1, 1); puts(judge() ? "YES" : "NO"); } return 0; }
相关文章推荐
- tiny4412学习一:编译uboot,体验裸机
- el表达式
- 虚拟机上搭建LAMP
- Android studio入门
- Codeforces 542A. Place Your Ad Here (扫描线进阶 带权值的线段交求最大值) (线段树)
- 谷歌地图api
- Android——Day8.31
- #pragma pack(push,1)与#pragma pack(pop)
- HTML发展史
- android做新闻客户端用到得第三包
- 博客9:程序包的管理,以及软件的安装和管理
- 驼峰命名法总结
- linux 查找文件中字符串
- IplImage图像与BYTE图像之间的转换与利用
- 九度oj 1192
- HIbernate继承映射
- 更改本机MAC
- 文件描述符与文件指针的相互转化
- Java基础(一)
- Android的Activity跳转动画各种效果整理