题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1598

一道带有贪心思想的并查集

所以说像二分,贪心这类基础的要掌握的很扎实才行。

用结构体数组储存公路编号和速度,然后按照速度从小到大的排序,

然后以每条路为起点枚举(已经排了序,所以可以保证可以取最小的),再利用并查集判断是否走到

最后比较出最小的差值

code

 #include<cstdio>
#include<algorithm>
using namespace std;
int inf=;
int father[];
void give(int x)
{
for (int i=;i<=x;i++)
father[i]=i;
}
int find(int x)
{
while(x!=father[x])
x=father[x];
return father[x];
}
typedef struct {
int st;
int ed;
int speed;
}point;
point yj[];
bool cmp (const point &a,const point &b){return a.speed<b.speed;}
int main()
{
int n,m,i,j,ans,min,num,start,end;
int sx,sy;
while (~scanf("%d %d",&n,&m))
{
for (i=;i<=m;i++)
scanf("%d %d %d",&yj[i].st,&yj[i].ed,&yj[i].speed);
sort(yj+,yj+m+,cmp);
scanf("%d",&num);
while (num--)
{
scanf("%d %d",&start,&end);
min=inf;
for (i=;i<=m;i++)
{
give(n);
for (j=i;j<=m;j++)
{
sx=find(yj[j].st);
sy=find(yj[j].ed);
if (sx!=sy)
father[sx]=sy;
if (find(start)==find(end))
{
ans=yj[j].speed-yj[i].speed;
if (ans<min)
min=ans;
break;
}
}
}
if (min==inf)
printf("-1\n");
else
printf("%d\n",min);
}
}
return ;
}

hdu 1598 (并查集加贪心) 速度与激情的更多相关文章

  1. hdu 4514 并查集+树形dp

    湫湫系列故事——设计风景线 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tot ...

  2. HDU 3926 并查集 图同构简单判断 STL

    给出两个图,问你是不是同构的... 直接通过并查集建图,暴力用SET判断下子节点个数就行了. /** @Date : 2017-09-22 16:13:42 * @FileName: HDU 3926 ...

  3. HDU 4496 并查集 逆向思维

    给你n个点m条边,保证已经是个连通图,问每次按顺序去掉给定的一条边,当前的连通块数量. 与其正过来思考当前这边会不会是桥,不如倒过来在n个点即n个连通块下建图,检查其连通性,就能知道个数了 /** @ ...

  4. HDU 1232 并查集/dfs

    原题: http://acm.hdu.edu.cn/showproblem.php?pid=1232 我的第一道并查集题目,刚刚学会,我是照着<啊哈算法>这本书学会的,感觉非常通俗易懂,另 ...

  5. HDU 2860 并查集

    http://acm.hdu.edu.cn/showproblem.php?pid=2860 n个旅,k个兵,m条指令 AP 让战斗力为x的加入y旅 MG x旅y旅合并为x旅 GT 报告x旅的战斗力 ...

  6. C - BLG POJ - 1417 种类并查集加dp(背包)

    思路:刚看这道题感觉什么都不清楚,人物之间的关系一点也看不出来,都不知道怎么写,连并查集都没看出来,但是你可以仔细分析一下,当输入字符串为“yes”的时候,我们设输入的值为x和y,当x为天使是则由题可 ...

  7. hdu 1198 (并查集 or dfs) Farm Irrigation

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1198 有题目图11种土地块,块中的绿色线条为土地块中修好的水渠,现在一片土地由上述的各种土地块组成,需要浇 ...

  8. hdu 4496(并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4496. 思路:简单并查集应用,从后往前算就可以了. #include<iostream> ...

  9. 2015多校第6场 HDU 5361 并查集,最短路

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5361 题意:有n个点1-n, 每个点到相邻点的距离是1,然后每个点可以通过花费c[i]的钱从i点走到距 ...

随机推荐

  1. (Unity4.7)assetbundle 坑爹总结

    使用版本Unity4.7 一.关于依赖打包 1.当一个被打包的资源A引用了其他的资源B,并且没有被打成一个包时,要选用[BuildAssetBundleOptions.CollectDependenc ...

  2. 维护没有源代码的遗留 Java 项目

    维护没有源代码的遗留 Java 项目 Give Those Sweets Some Love --> 有时你可能不得不修改一些只有 Jar 和 .class 的 Java 项目. 要修改 Jar ...

  3. 阿里云oss存储图片

    单线程版-上传网络流 import pymysql import oss2 import requests import logging # 添加日志 logging.basicConfig( lev ...

  4. &符号 (弃用引用传参了,不要用!!)

    写法一 $age = function grow($age) { $age += ; return $age; } echo grow($age) echo $age 写法二 $age = funct ...

  5. Docker容器管理及代码调用

    这篇文章主要讲解Docker的容器管理,实现服务的部署,以Redis为例.我用的是Utuntu16.04,所以软件直接从库中下载,库中的Docker不是最新版本.但是不影响部署,如需要最新可在官网下载 ...

  6. python文件操作 二

    问题:在传输的时候对方不知道是以什么格式传给用户,传来传去彼此都忘了什么格式: 在编码的时候:utf8:是3个字符,gbk是2个字符,每个字符数字对应的字符,一段2进制串,如果10个字节全部都是中文, ...

  7. django1.10使用本地静态文件

    django1.10使用本地静态文件方法 本文介绍的静态文件使用,是指启动web站点后,访问静态资源的用法,实际静态资源地址就是一个个的url 如果没有启动web站点,只是本地调试html页面,那直接 ...

  8. Oracle中dbms_random.string 的用法

    转载:https://blog.csdn.net/simonchi/article/details/8657787 DBMS_RANDOM.STRING(var1,var2) 这个函数有两个参数 va ...

  9. overflow属性的用法

    <style type="text/css">div{ background-color:#00FFFF; width:150px; height:150px; ove ...

  10. hdoj1005(循环,找规律)

    Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1 ...