题目大意:给你一棵边权树,定义两点间距离为它们唯一路径上的最小路权,求与某点距离不大于K(k为已知)的点的数量

带权并查集维护集合内元素总数

路和问题 都按权值大到小排序,枚举问题, 建权值不小于K的边,并查集维护连通性,求集合元素内总数即可

 #include <bits/stdc++.h>
#define N 200100
#define inf 0x3f3f3f3f
using namespace std; int n,q,cnt;
int fa[N],f[N];
struct EDGE{
int x,y,w;
}edge[N];
struct QUES{
int k,v,id,ans;
}ques[N]; int cmp1(EDGE s1,EDGE s2) {return s1.w>s2.w;}
int cmp2(QUES s1,QUES s2) {return s1.k>s2.k;}
int cmp3(QUES s1,QUES s2) {return s1.id<s2.id;}
void edge_add(int x,int y,int z)
{
cnt++;
edge[cnt].x=x;
edge[cnt].y=y;
edge[cnt].w=z;
}
int find_fa(int x)
{
int fx=x;
while(fx!=fa[fx]) {fx=fa[fx];}
while(fa[x]!=fx)
{
int pr=fa[x];
f[pr]-=f[x];
fa[x]=fx;
x=pr;
}
return fx;
}
void comb(int x,int y)
{
int fx=find_fa(x);
int fy=find_fa(y);
fa[fy]=fx;
f[fx]+=f[fy];
} int main()
{
scanf("%d%d",&n,&q);
for(int i=;i<n;i++)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
edge_add(x,y,z);
}
sort(edge+,edge+n,cmp1);
for(int i=;i<=q;i++)
{
int x,y;
scanf("%d%d",&x,&y);
ques[i].k=x;
ques[i].v=y;
ques[i].id=i;
}
sort(ques+,ques+q+,cmp2);
for(int i=;i<=n;i++)
{
fa[i]=i;
f[i]=;
}
int j=;
for(int i=;i<=q;i++)
{
while(edge[j].w>=ques[i].k)
{
comb(edge[j].x,edge[j].y);
j++;
}
int fv=find_fa(ques[i].v);
ques[i].ans=f[fv]-;
}
sort(ques+,ques+q+,cmp3);
for(int i=;i<=q;i++)
{
printf("%d\n",ques[i].ans);
}
return ;
}

最新文章

  1. BZOJ 3262 陌上花开 ——CDQ分治
  2. java提高篇(四)-----理解java的三大特性之多态
  3. MSSQL存储过程返回自定义标识
  4. C# 數據事務操作
  5. (状压) Brush (IV) (Light OJ 1018)
  6. GridView第一个Item中的CheckBox不工作
  7. PHP: Local 和 Global 作用域
  8. Unity3d:播放物理目录下的MP3文件
  9. linux源码阅读笔记 数组定义
  10. unity3d与eclipse集成开发android应用
  11. Visual Leak Detector 2.2.3 Visual C++内存检测工具
  12. 在Mac OS X中使用VIM开发STM32(1)
  13. cf B Three matrices
  14. [转] Gradle中的buildScript代码块
  15. Android之RecyclerView轻松实现下拉刷新和加载更多
  16. 初识webgl--我的webgl学习第一课(基于threeJs)
  17. 在ASP.NET Core中构建路由的5种方法
  18. 02 Redis关闭服务报错---(error) ERR Errors trying to SHUTDOWN. Check logs.
  19. mongodb java3.2驱动 测试 一些记录
  20. yum-cron更新 CentOS yum update 不升级内核版本方法

热门文章

  1. 【JavaScript框架封装】数据类型检测模块功能封装
  2. 多行文本省略号样式失效丢失,以及控制台显示autoprefixer警告&#39;Autoprefixer applies control comment to whole block, not to next rules.&#39;
  3. Python 不同列表时间测试
  4. vue-cli3.0 搭建项目
  5. MVC笔记(一)
  6. 【hihocoder 1308】搜索二·骑士问题
  7. Ajax-URL 防止数据缓存,添加时间戳
  8. 转:IOS远程推送通知
  9. java 微信server录音下载到自己server
  10. dnscapy使用——本质上是建立ssh的代理(通过dns tunnel)