hdu 5441 Travel (2015长春网赛)
http://acm.hdu.edu.cn/showproblem.php?pid=5441
题目大意是给一个n个城市(点)m条路线(边)的双向的路线图,每条路线有时间值(带权图),然后q个询问,每个询问一个时间值
求不大于这个时间的可以连通的城市有多少种连法
比如样例中第一个询问6000,不大于6000时间值的连通城市有3,5.所以有3-->5,5-->3两种
第二个询问10000,符合条件的连通的城市有2,3,5,所以有2-->3,3-->2,2-->5,5-->2,3-->5,5-->3六种
利用结构体储存点与权值然后把权值排序,找出符合条件的城市点,利用并查集记录相连的点然后合并,整合路线
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int father[],num[];
int a[];
void lsy(int n)
{
for (int i=;i<=n;i++)
{
father[i]=i;
num[i]=;
}
}
struct point {
int x,y,z;
bool operator <(const point& q)const
{
return z<q.z;
}
};
point yj[];
struct node {
int w,id;
bool operator <(const node &q)const
{
return w<q.w;
}
};
node yjj[];
int _find(int x)
{
if (father[x]==x)return x;
father[x]=_find(father[x]);
return father[x];
}
int main()
{
int t,n,m,q,i;
while (~scanf("%d",&t))
{
while (t--)
{
scanf("%d %d %d",&n,&m,&q);
memset(a,,sizeof(a));
for (i=;i<=m;i++)
scanf("%d %d %d",&yj[i].x,&yj[i].y,&yj[i].z);
sort(yj+,yj+m+);
lsy(n);
for (i=;i<=q;i++)
{
scanf("%d",&yjj[i].w);
yjj[i].id=i;
}
sort(yjj+,yjj+q+);
int ans=,j=;
for (i =;i<=q;i++)
{
while (j<=m&&yj[j].z<=yjj[i].w )
{
int sx=_find(yj[j].x);
int sy=_find(yj[j].y);
j++;
if (sx==sy) continue;
ans+=(num[sx]+num[sy])*(num[sx]+num[sy]-)-num[sx]*(num[sx]-) - num[sy]*(num[sy]-);//合并之后的关系
father[sx]=sy;
num[sy]+=num[sx];
}
a[yjj[i].id]=ans;
}
for (i=;i<=q;i++)
printf("%d\n",a[i]);
}
}
return ;
}
hdu 5441 Travel (2015长春网赛)的更多相关文章
- hdu 5441 (2015长春网络赛E题 带权并查集 )
n个结点,m条边,权值是 从u到v所花的时间 ,每次询问会给一个时间,权值比 询问值小的边就可以走 从u到v 和从v到u算不同的两次 输出有多少种不同的走法(大概是这个意思吧)先把边的权值 从小到大排 ...
- hdu 5443 (2015长春网赛G题 求区间最值)
求区间最值,数据范围也很小,因为只会线段树,所以套了线段树模板=.= Sample Input3110011 151 2 3 4 551 21 32 43 43 531 999999 141 11 2 ...
- ACM学习历程—HDU 5443 The Water Problem(RMQ)(2015长春网赛1007题)
Problem Description In Land waterless, water is a very limited resource. People always fight for the ...
- ACM学习历程—HDU 5446 Unknown Treasure(数论)(2015长春网赛1010题)
Problem Description On the way to the next secret treasure hiding place, the mathematician discovere ...
- HDU 5531 Rebuild (2015长春现场赛,计算几何+三分法)
Rebuild Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total S ...
- hihocoder1236(2015长春网赛J题) Scores(bitset && 分块)
题意:给你50000个五维点(a1,a2,a3,a4,a5),50000个询问(q1,q2,q3,q4,q5),问已知点里有多少个点(x1,x2,x3,x4,x5)满足(xi<=qi,i=1,2 ...
- (并查集)Travel -- hdu -- 5441(2015 ACM/ICPC Asia Regional Changchun Online )
http://acm.hdu.edu.cn/showproblem.php?pid=5441 Travel Time Limit: 1500/1000 MS (Java/Others) Memo ...
- HDU 4764 Stone (2013长春网络赛,水博弈)
Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- Travel(HDU 5441 2015长春区域赛 带权并查集)
Travel Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Su ...
随机推荐
- HDFS中的集中缓存管理详解
一.背景 Hadoop设计之初借鉴GFS/MapReduce的思想:移动计算的成本远小于移动数据的成本.所以调度通常会尽可能将计算移动到拥有数据的节点上,在作业执行过程中,从HDFS角度看,计算和数据 ...
- Incompatible shapes during the half way training---Invalid argument: Incompatible shapes: [1,63,4] vs. [1,64,4]
这是tensorflow model 中我使用它的faster--cnn,但是就是训练过程中,代码执行到一半 一般是step=40~120的时候就报错了: INFO:tensorflow:global ...
- vue pros 子组件接收父组件传递的值
1.子组件 ItemTemplate.vue <template> <div class="item"> <li v-for="pdata ...
- Codeforces Round #499 (Div. 2) C Fly题解
题目 http://codeforces.com/contest/1011/problem/C Natasha is going to fly on a rocket to Mars and retu ...
- 05_ssm基础(三)之Spring基础
11.spring入门引导 12.spring_HelloWord程序 实现步骤: 0.找到spring压缩包,并解压 1.拷贝jar包 2.添加主配置文件(官方文档约28页) 3.在测试中使用 13 ...
- Realtime Rendering 6
[Realtime Rendering 6] 1.Lighting computations occur in two phases: 1)light phase. used to compute t ...
- canvas动画---- 太阳、地球、月球
<div> <canvas id="canvas" width="500" height="500"></ca ...
- tomcat实现https
第一步:生成key文件: C:\>keytool -genkey -alias tomcat -keyalg RSA -keystore C:\tomcat.key 密码最好设置默认change ...
- Python 继承与多继承
相关知识点: __class__.__name__的用法. >>> class ABC: def func(self): print('打印类名:',__class__.__name ...
- python3使用paramiko操作远程机器
目标:有A和B两台机器,希望在机器A上操作B上的脚本 解决方法:使用paramiko实现操作远程机器 1.安装paramiko 安装第三方包[pip3 install paramiko] ...