博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++之路进阶——bzoj1468(tree)
阅读量:5268 次
发布时间:2019-06-14

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

  
Notice:由于本OJ建立在Linux平台下,而许多题的数据在Windows下制作,请注意输入、输出语句及数据类型及范围,避免无谓的RE出现。

1468: Tree

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 774  Solved: 412
[][][]

Description

给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K

Input

N(n<=40000) 接下来n-1行边描述管道,按照题目中写的输入 接下来是k

Output

一行,有多少对点之间的距离小于等于k

Sample Input

7
1 6 13
6 3 9
3 5 7
4 1 3
2 4 20
4 7 2
10

Sample Output

5

HINT

题解:

    点分。。。

代码:

    

1 #include
2 #include
3 #include
4 #define maxn 400100 5 6 using namespace std; 7 8 int n,m,root,sum,ans,cnt,head[maxn],son[maxn],f[maxn],vis[maxn],deep[maxn],d[maxn]; 9 10 struct ss11 {12 int to;13 int next;14 int w;15 }e[maxn];16 17 void insert(int u,int v,int w)18 {19 e[++cnt].to=v; e[cnt].next=head[u]; e[cnt].w=w; head[u]=cnt;20 e[++cnt].to=u; e[cnt].next=head[v]; e[cnt].w=w; head[v]=cnt;21 }22 23 void getroot(int x,int fa) 24 {25 son[x]=1;26 f[x]=0;27 for (int i=head[x];i;i=e[i].next)28 if (!vis[e[i].to]&&e[i].to!=fa)29 {30 getroot(e[i].to,x);31 son[x]+=son[e[i].to];32 f[x]=max(f[x],son[e[i].to]);33 }34 f[x]=max(f[x],sum-son[x]);35 if (f[x]

 

转载于:https://www.cnblogs.com/grhyxzc/p/5141007.html

你可能感兴趣的文章
寄Android开发Gradle你需要知道的知识
查看>>
简述spring中常有的几种advice?
查看>>
整理推荐的CSS属性书写顺序
查看>>
ServerSocket和Socket通信
查看>>
css & input type & search icon
查看>>
源代码的下载和编译读后感
查看>>
Kafka学习笔记
查看>>
Octotree Chrome安装与使用方法
查看>>
Windows 环境下基于 Redis 的 Celery 任务调度模块的实现
查看>>
趣谈Java变量的可见性问题
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
ssm框架之将数据库的数据导入导出为excel文件
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
验证组件FluentValidation的使用示例
查看>>
0320-学习进度条
查看>>
解决windows系统的oracle数据库不能启动ora-00119和ora-00130的问题
查看>>
ip相关问题解答
查看>>
MetaWeblog API Test
查看>>
反弹SHELL
查看>>
关闭Chrome浏览器的自动更新和升级提示
查看>>