UVa 11857 - Driving Range

题目 设计电动汽车的电池容量,已知有n个城市,每个城市都有充电站,m条双向道路(可能两个城市间有多条道路),求最小的电池容量。 分析 最小生成树。利用kruskal算法,记录最后加入树的边长即可;如果并查集中的节点数量不是城市数量,则有的城市不连通,输出IMPOSIBALLE。 ...

2018-09-21 14:48:50

阅读数:32

评论数:0

UVa 11690 - Money Matters

题目:一些人去旅游,结束后他们有些人之间的关系变得恶劣了,而他们付的钱并没有完全的均分;             现在问保持友好关系的人之间的钱能否完全均化掉。 分析:并查集,数据结构。将还保持友好关系的人构建并查集,判断每个集合的人们是否债务和为零。 说明:还是要学英语,其他都是浮云。 ...

2017-11-18 13:30:37

阅读数:152

评论数:0

UVa 10685 - Nature

题目:自然间中的食物链,已知一些捕食关系,求最大的食物链网的大小。 分析:并查集。利用并查集合并集合求出最大的集合元素个数,利用hash存储名字。 说明:还以为求最长的路径(⊙v⊙)。 #include #include #include //union_set__begein int ...

2017-08-03 11:06:24

阅读数:132

评论数:0

UVa 540 - Team Queue

題目:多級隊列;排隊打飯,如果當一個隊伍裡面有自己團隊的人,就可以插隊到團隊後面;求出隊序列。 分析:數據結構。自己實現多級隊列的數據結構。利用鏈錶實現多級隊列的數據機構。                           定義兩種結構:1鏈錶頭節點,2鏈錶內節點;             相同...

2016-03-12 12:46:55

阅读数:396

评论数:0

UVa 1160 - X-Plosives

題目:有n個由兩種元素組成的化合物要裝車,如果其中能取出一個子集元素的個數等於化合物的個數,則危險;             現在依次將化合物裝車,遇到危險就放棄(這個化合物不裝車),問有多少元素不裝車。 分析:模擬,圖論,并查集。按照題目順序模擬裝車順序。             如果把每...

2015-11-26 10:03:43

阅读数:333

评论数:0

UVa 1197 - The Suspects

題目:有一些人(編號0到n-1),0號攜帶病毒,然後給你一些在一起活動過的組隊,問多少人可能攜帶病毒。 分析:DS,并查集。直接利用并查集統計即可。 說明:confluence弄了一晚上沒裝上╮(╯▽╰)╭。 #include //union_set_begin int sets[300...

2015-11-25 22:21:31

阅读数:331

评论数:0

UVa 615 - Is It A Tree?

题目:给你一些有向边(端点,长度为1),判断给定的图是否是一棵树。 分析:图论,并查集。树是一个所有点都连接的有向无环图(不连接的是森林)。              按照树的定义判断是否有环即可,有环分成两种:              1.链状环;2.存在节点有多个父亲节点;     ...

2014-10-04 21:04:04

阅读数:881

评论数:0

UVa 10099 - The Tourist Guide

题目:有一个导游,要带领团队从当前点,走到目标点,但是每条路一次性通过的人有数量限制,             所以需要分批次进行。问最少需要分多少次进行。 分析:贪心,最短路或最小生成树。图上贪心性质的扩散问题,可以作为最短路或者最小生成树求解。             问题的贪心特性成立很容易...

2014-03-21 18:18:33

阅读数:1259

评论数:0

UVa 10227 - Forests

题目:有P个人和T棵树。现在给你某个人听到某棵树倒下声音的一些二元组,如果两个人听到的树的集合相同他们就是同一集合,问人分成几个集合。 分析:并查集。因为数据量很小(100)所以直接暴力判断是否相同即可,然后利用并查集处理合并,最后查询并查集中根(sets(i) = i)的个数即是结果。 注意...

2013-10-16 00:46:58

阅读数:1470

评论数:0

UVa 10158 - War

题目:有n个人,有四种操作:1.朋友设定;2.敌人设定;3.朋友询问;4.敌人询问。对每个操作判断合法性。 分析:并查集。通过分析可以知道,朋友都在一个集合,每个集合只能有一个敌对的集合,并且他们是相互敌对的。             (如果一个集合存在2个以上的敌人,那么他们一定是同一个集合...

2013-10-11 20:52:57

阅读数:2978

评论数:0

UVa 10301 - Rings and Glue

题目:有一些粘有胶水的圆环,散落在地上,问黏在一起最多的整体有几个环组成。 分析:并查集、计算几何。判断每两个圆环是否黏在一起即可,利用并查集记录。 注意:1.输出格式 0 rings。2.是圆环不是圆。3.并查集合并前要判断;把相同集合的合并会重复计数╮(╯▽╰)╭。 #include...

2013-10-11 00:46:08

阅读数:2311

评论数:0

UVa 10369 - Arctic Network

题目:在二维平面上有很多个城市,现在要把所有城市都连接起来,求最长边的小代价。其中某些城市可以直接用卫星连接、没有长度。 分析:MST、并查集。最小生成树,这里利用kruskar算法求解。求出最小生成树上的第p-s长的边即为结果。 注意:题目的描述有点纠结。既不是每个点放一个卫星、也不是每个边...

2012-12-14 12:08:40

阅读数:1051

评论数:0

UVa 10608 - Friends

题目:求最大的集合的元素个数。 分析:并查集。 注意:输入使用while( scanf("%d",&T) != EOF )会TLE。 #include #include //union_set_begin int sets[ 30001 ]; int ran...

2012-12-13 19:18:39

阅读数:1978

评论数:0

UVa 10583 - Ubiquitous Religions

题目:求并查集集合的个数。 分析:并查集。 #include #include //union_set_begin int sets[ 50001 ]; int rank[ 50001 ]; void union_set( int n ) { for ( int i = 0 ; i ...

2012-12-13 18:35:12

阅读数:1504

评论数:0

UVa 11503 - Virtual Friends

题目:求并查集元素的个数。 分析:哈希表、并查集。利用hash表建立名字和对应数值的关系。利用一个数组记录集合中元素个数,每次合并,把元素个数加到根上即可。 注意:如果查询在同一集合,也要输出 。 #include #include #include #include #in...

2012-11-14 19:40:28

阅读数:798

评论数:0

UVa 459 - Graph Connectivity

题目:求分图个数。 分析:简单题、并查集。 注意:数据读入方式出错会出现RE或TLE。 #include #include #include #include #include using namespace std; char M[ 2 ],E[ 3 ]; class...

2012-11-14 13:44:36

阅读数:1256

评论数:0

UVa 793 - Network Connections

题目:给出网络中的边,查询节点的连接状态。 分析:简单题、并查集。 注意:数据读入出错会RE。 #include #include #include #include #include using namespace std; char E[ 3 ]; //union_...

2012-11-14 13:42:22

阅读数:1123

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭