HDU5326多校签到题,搜索子孙节点,
2015-07-31 13:04
288 查看
dfs一发即可:
#include <bits/stdc++.h> using namespace std; const int N = 110; vector<int> E ; int in , son ; bool vis ; void dfs(int u) { vis[u] = true; son[u] = 1; for(int v: E[u]) { dfs(v); son[u] += son[v]; } } int main() { freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); int n, k, a, b; while(scanf("%d%d", &n, &k) == 2) { memset(vis, false, sizeof(vis)); memset(in, 0, sizeof(in)); for(int i = 0; i < n; i++) { E[i].clear(); } for(int i = 1; i < n; i++) { scanf("%d%d", &a, &b); assert(1 <= a && a <= n); assert(1 <= b && b <= n); a--; b--; E[a].push_back(b); in[b]++; } int root = -1; for(int i = 0; i < n; i++) if(!in[i]) { root = i; } assert(root == 0); dfs(root); for(int i = 0 ; i < n; i++) if(!vis[i]) { while(1); } int ret = 0; for(int i = 0; i < n; i++) if(son[i] - 1 == k) { ret ++; } printf("%d\n", ret); } return 0; }
相关文章推荐
- Java读取Unicode文件(UTF-8等)时碰到的BOM首字符问题,及处理方法
- C#_Stopwatch 类
- error MSB8031 Building an MFC project for a non-Unicode character set is deprecated
- Newtonsoft.Json 高级用法
- poj1125 Stockbroker Grapevine 最短路 dijkstral + 优先队列
- 5555555555555555555555555555555
- android Listview checkbox 单选
- HDU5319暴力扫加标记
- shell脚本中的if
- Creating Nice Reports with wxWidgets ZIP API
- CentOS 5 centos 6下安装Axel插件加速yum下载
- 【转】如何入门iOS开发
- 详解Android开发中Fragment的使用
- 过河问题(贪心)nyoj47
- CDOJ 输出前m大的数据
- [转]DevExpress GridControl 关于使用CardView的一点小结
- QT下ui类的this指针与ui指针
- guava (四)--集合中的FluentIterable类
- AOP 切面编程
- bitmap 设置图片尺寸,避免 内存溢出 OutOfMemoryError的优化方法