随笔分类 -  并查集

HDU5883 The Best Path(并查集+欧拉路)
摘要:题意: n个点m条边,问m条边构成的是否为欧拉路。 是的话输出路径上所有点的异或和,每个点经过几次异或几次。 思路: 先用并查集判断是否连通,然后如果是欧拉路的话有两种情况 如果奇数度节点有2个,就枚举这两个点做起点,选大的 如果都为偶数度节点,就枚举n个起点,选大的 阅读全文

posted @ 2016-09-20 22:25 恶devil魔 阅读(132) 评论(0) 推荐(0)

bzoj1050 旅行comf(并查集)
摘要:题意: Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000)。给你两个顶点S和T ,求一条路径,使得路径上最大边和最小边的比值最小。如果S和T之间没有路径,输出”IMPOSSIBLE”,否则输出 这个比值,如果需要,表 阅读全文

posted @ 2016-09-09 16:23 恶devil魔 阅读(203) 评论(0) 推荐(0)

codeforces 691D Swaps in Permutation(并查集)
摘要:题意: 给你一个长度为n的数列,然后给你m组数, 表示这两个数可以交换 然后让你给出字典序最大的数列 思路: 用并查集,可交换的数都是成组的,把同一并查集中的数加在根节点的vector后, 在一个并查集中的数,从大到输出就好了 阅读全文

posted @ 2016-07-22 21:04 恶devil魔 阅读(270) 评论(0) 推荐(0)

HDU1232 畅通工程
摘要:题目描述:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?#include #include #include #inc... 阅读全文

posted @ 2015-09-05 10:40 恶devil魔

并查集模版
摘要:int pre[N]; int fnd(int x) { int r=x; while(pre[r]!=r) r=pre[r]; int i=x,j; while(i!=r) { j=pre[i]; pre[i]=r; i=j; } return r; } void ... 阅读全文

posted @ 2015-09-05 10:39 恶devil魔

导航