博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu - 4707 - Pet
阅读量:4634 次
发布时间:2019-06-09

本文共 1001 字,大约阅读时间需要 3 分钟。

题意:一棵N个结点(编号从0开始)的树,根结点为0,求到根结点的距离大于D的结点个数(0 < 测试组数T <= 10, 0<N<=100000, 0<D<N)。

题目链接:

——>>统计吧。。。

 

#include 
#include
using namespace std;const int maxn = 100000 + 10;int D, head[maxn], nxt[maxn<<1], v[maxn<<1], ecnt, d[maxn], ret;void init(){ memset(head, -1, sizeof(head)); ecnt = 0; ret = 0;}void addEdge(int uu, int vv){ v[ecnt] = vv; nxt[ecnt] = head[uu]; head[uu] = ecnt; ecnt++;}void dfs(int x, int fa){ if(d[x] > D) ret++; for(int e = head[x]; e != -1; e = nxt[e]) if(v[e] != fa){ d[v[e]] = d[x] + 1; dfs(v[e], x); }}void solve(){ d[0] = 0; dfs(0, -1); printf("%d\n", ret);}int main(){ int T, N, uu, vv; scanf("%d", &T); while(T--){ init(); scanf("%d%d", &N, &D); for(int i = 0; i < N-1; i++){ scanf("%d%d", &uu, &vv); addEdge(uu, vv); addEdge(vv, uu); } solve(); } return 0;}

 

 

转载于:https://www.cnblogs.com/suncoolcat/p/3310846.html

你可能感兴趣的文章
Socket
查看>>
【C#公共帮助类】10年代码,最全的系统帮助类
查看>>
JQuery UI
查看>>
张弛有度
查看>>
【ZJOI2008】树的统计(树链剖分)
查看>>
【NOIP校内模拟】T2 华莱士(环套树)
查看>>
lists,tuples and sets of Python
查看>>
Superset配置hive数据源
查看>>
查询Master下的系统表和系统视图获取数据库的信息和简单的渗透测试
查看>>
GET和POST的区别
查看>>
Sublime Text 3 及Package Control 安装(附上一个3103可用的Key)
查看>>
jvm 性能调优
查看>>
算法(第四版)C# 习题题解——1.3
查看>>
LTE QCI分类 QoS
查看>>
【Flask】flask+uwsgi+nginx环境部署
查看>>
Get MAC address using POSIX APIs
查看>>
bzoj2120
查看>>
基于uFUN开发板的心率计(一)DMA方式获取传感器数据
查看>>
【dp】船
查看>>
oracle, group by, having, where
查看>>