hdu 1598 (并查集加贪心) 速度与激情
题目传送门: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 (并查集加贪心) 速度与激情的更多相关文章
- hdu 4514 并查集+树形dp
		
湫湫系列故事——设计风景线 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
 - HDU 3926 并查集 图同构简单判断 STL
		
给出两个图,问你是不是同构的... 直接通过并查集建图,暴力用SET判断下子节点个数就行了. /** @Date : 2017-09-22 16:13:42 * @FileName: HDU 3926 ...
 - HDU 4496  并查集 逆向思维
		
给你n个点m条边,保证已经是个连通图,问每次按顺序去掉给定的一条边,当前的连通块数量. 与其正过来思考当前这边会不会是桥,不如倒过来在n个点即n个连通块下建图,检查其连通性,就能知道个数了 /** @ ...
 - HDU 1232 并查集/dfs
		
原题: http://acm.hdu.edu.cn/showproblem.php?pid=1232 我的第一道并查集题目,刚刚学会,我是照着<啊哈算法>这本书学会的,感觉非常通俗易懂,另 ...
 - HDU 2860 并查集
		
http://acm.hdu.edu.cn/showproblem.php?pid=2860 n个旅,k个兵,m条指令 AP 让战斗力为x的加入y旅 MG x旅y旅合并为x旅 GT 报告x旅的战斗力 ...
 - C - BLG POJ - 1417 种类并查集加dp(背包)
		
思路:刚看这道题感觉什么都不清楚,人物之间的关系一点也看不出来,都不知道怎么写,连并查集都没看出来,但是你可以仔细分析一下,当输入字符串为“yes”的时候,我们设输入的值为x和y,当x为天使是则由题可 ...
 - hdu 1198 (并查集 or  dfs) Farm Irrigation
		
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1198 有题目图11种土地块,块中的绿色线条为土地块中修好的水渠,现在一片土地由上述的各种土地块组成,需要浇 ...
 - hdu 4496(并查集)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4496. 思路:简单并查集应用,从后往前算就可以了. #include<iostream> ...
 - 2015多校第6场 HDU 5361 并查集,最短路
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5361 题意:有n个点1-n, 每个点到相邻点的距离是1,然后每个点可以通过花费c[i]的钱从i点走到距 ...
 
随机推荐
- tabel 选中行变色和取当前选中行值等问题
			
先把代码贴出来 $("#tableId tbody tr").mousedown(function () { $('#tableId tr').each(funct ...
 - hdu1799-循环多少次?-(组合恒等式)
			
循环多少次? Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
 - 运用active和hover实现导航栏的页面切换
			
.nav ul li a:hover{ background: #3E6EDD;}.nav ul li a:hover img{ display: block;}.nav ul li a.active ...
 - ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法
			
原文链接:https://www.cnblogs.com/kaid/p/8616385.html 在ubuntu系统的termial下,用apt-get install 安装软件的时候,如果在未完成下 ...
 - 1.5.6、CDH 搭建Hadoop在安装之前(定制安装解决方案---使用Cloudera Manager模板创建CDH群集)
			
使用Cloudera Manager模板创建CDH群集 您可以通过从Cloudera Manager管理的现有CDH群集导出群集模板来创建新的CDH群集.然后,您可以修改模板并使用它在新的主机集上创建 ...
 - 1.3.8、CDH 搭建Hadoop在安装之前(端口---Apache Flume和Apache Solr使用的端口)
			
Apache Flume和Apache Solr使用的端口 Apache Flume用于与Apache Solr通信的端口可能会有所不同,具体取决于您的配置以及是否使用安全性(例如,SSL).使用Fl ...
 - React中innerHTML的坑
			
[React中innerHTML的坑] 通过React Ref机制返回的对象,是一个阉割的DOM对象,并非原始DOM对象.比如,这个阉割版的DOM对象没有innerHTML对象. <button ...
 - Photoshop Keynote
			
[Photoshop Keynote] 1.Tab:隐藏.显示所有面板. 2.Sihft+Tab:隐藏.显示右侧面板. 3.F:全屏切换. 4.选择并遮住: 参考:http://www.51shipi ...
 - excel 数据量较大边查询边输入到excel表格中
			
public Resultmodel getexpenseMessagx(HttpServletResponse response, String date1, String date2) { lon ...
 - PR回写   所有物料规划PR时对净需求+最小采购批量+安全库存+舍入值的先后考虑逻辑
			
所有物料规划PR时对净需求+最小采购批量+安全库存+舍入值的先后考虑逻辑20171207-1228.docx PR回写案例一: '; --SAFE_QTY:安全库存 ' ; -- MIN_LOT_SI ...