首页 技术 正文
技术 2022年11月7日
0 收藏 307 点赞 474 浏览 1160 个字

题目大意:给你一棵边权树,定义两点间距离为它们唯一路径上的最小路权,求与某点距离不大于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 ;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,484
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,899
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,732
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,485
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,125
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,285