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 ...
随机推荐
- 3dmax快捷键
P 透视图 F前视图 L 左视图 T 顶视图 B 底视图单窗口与四窗口的切换快捷键是 alt+w 渲染快捷键 shilf+q 独立 快捷键 alt+q 自己多记点快捷键哦!!!!3DMAX2009快捷 ...
- 面试官提出的问题应该怎么答?(如开发中使用过EasyUI吗?)
Jquery EasyUI是第三方基于Jquery框架开发的一款轻量级的,侧重于页面显示部分的框架,也可以称为插件. Jquery EasyUI使用比较简单,也有比较全的文档可供参考. 常用的组件就是 ...
- jenkins 自动触发
在gitlab上配置连接jenkins ,将Jenkins的Secret token 与Build URL 复制到gitlab中 在settings标签下面,找到OutBound Request,勾选 ...
- 编译模块的Makefile解析
Makefile # if not defined KERNELRELEASE, command is running from command line,need invoke kbuild sys ...
- vc for python2.7
https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266
- java程序中中常用到的linux操作
1.解压命令 tar -zxvf filename.tar.gz 其中zxvf含义分别如下 z: gzip 压缩格式 x: extract 解压 v: verbose 详细信息 2.lin ...
- MyBatis数据库连接的基本使用
MyBatis部分: 本部分内容只主要体现Mybatis的特点. (1)MyBatis是什么? 开源的持久层框架,MyBatis的底层仍然是JDBC (2)编程步骤 step1 Maven项目 pom ...
- cakephp2.7的学习笔记1 —— 安装与配置
CakePHP2.7的安装 下载 https://github.com/cakephp/cakephp/releases 解压后扔进你的www目录就可以直接访问 按照提示,修改这两项配置,替换成你喜欢 ...
- Controlled Components
[Controlled Components] In HTML, form elements such as <input>, <textarea>, and <sele ...
- MVC003之调用BLL层方法(BLL层调用了WebService)
项目又BLL类库,在类库中引用了webservice.在web层调用BLL的方法时 错误如下: 在 ServiceModel 客户端配置部分中,找不到引用协定“OAService.IntranetSe ...