并查集和最小生成树
文章平均质量分 67
刘da帅气
这个作者很懒,什么都没留下…
展开
-
电影节(SDUT_2797)
电影节Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述某届电影节评选电影,共有两部电影进入最后评选环节,有n名观众,每个人有一次投票的机会,每个人都按照规则投给其中一部电影。为了了解情况,记者随机询问了一些人,一共询问了m次,特别神奇的是,记者每次都询问两个人,而且这两个人都把票投给了原创 2016-04-15 19:04:53 · 428 阅读 · 0 评论 -
POJ 1789 Truck History 最小生成树模板题
#include #include #include #include #include #define inf 0x3f3f3fusing namespace std;char s[2100][10];int a[2100][2100];int dis[2100];int book[2100];int main(){ int n; int i, j,原创 2016-08-01 08:45:22 · 192 阅读 · 0 评论 -
gw_Disjoint Set (并查集) 模板及拓展应用
此文章根据北大暑期课件并查集写的~~详情请看此文档~~~~;树形结构,合并以及查询都能lognMerge(b,f); 将f所在树挂为b所在树的直接子树Query(b,f); 简单比较b和f所在树的根节点是否相同缺点,树结构可能太深,查询太慢,方法一:根据树的层次进行合并 ,每个节点(元素)维护一个rank表示子树最大可能高度,较小的rank的树连到较大rank树的根部。原创 2016-07-29 10:59:12 · 297 阅读 · 0 评论 -
POJ 2485 Highways 最小生成树
题目要求:求一个最小生成树的最大边的权值,直接Prim,这题从上午十一点开始TLE,一直到下午15:06分坐了出来,一直TLE->WA->TLE->PE,不过最后还是做出来了,TLE的原因主要是book标记数组必须用bool类型,~~~~~,中间还用了Kruskal的算法,也是TLE,不知道为什么,总之好无语~~~~~Prim的代码如下:#include #include #include原创 2016-07-25 15:14:37 · 264 阅读 · 0 评论 -
Agri-Net(POJ_1258)
#include #include #include #include using namespace std;struct node{ int u; int v; int w;}q[11234];int a[110];int d[110][110];bool cmp(struct node a, struct node b){ return原创 2016-04-18 21:14:36 · 271 阅读 · 0 评论 -
图结构练习——最小生成树
图结构练习——最小生成树Time Limit: 1000MS Memory limit: 65536K题目描述 有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。 输入 输入包含多组数据,格式如下。第原创 2016-04-18 19:46:01 · 245 阅读 · 0 评论 -
树结构练习——判断给定森林中有多少棵树(sdut_2129)
树结构练习——判断给定森林中有多少棵树Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述 众人皆知,在编程领域中,C++是一门非常重要的语言,不仅仅因为其强大的功能,还因为它是很多其他面向对象语言的祖先和典范。不过这世上几乎没什么东西是完美的,C++也不例外,多继承结构在带来强大功能的同原创 2016-06-25 00:27:09 · 307 阅读 · 0 评论 -
数据结构实验之图论六:村村通公路
数据结构实验之图论六:村村通公路Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述当前农村公路建设正如火如荼的展开,某乡镇政府决定实现村村通公路,工程师现有各个村落之间的原始道路统计数据表,表中列出了各村之间可以建设公路的若干条道路的成本,你的任务是根据给出的数据表,求使得每个村都有公路原创 2016-04-20 21:32:29 · 1497 阅读 · 0 评论 -
大家快来A水题(sdut_2805)
#include #include #include int a[2010];int find(int x){ while(x != a[x]){ x = a[x]; } return x;}void merge(int x, int y){ int f1, f2; f1 = find(x); f2 = find(原创 2016-04-16 22:55:08 · 280 阅读 · 0 评论 -
Ubiquitous Religions(sdut_2428)
#include #include #include int a[50010];int find(int x){ while(x != a[x]){ x = a[x]; } return x;}void merge(int x, int y){ int f1, f2; f1 = find(x); f2 = find(y原创 2016-04-16 22:46:16 · 226 阅读 · 0 评论 -
小鑫的城堡(sdut_2798)
#include #include #include int a[112345];int hash[112345];int find(int x){ while(x != a[x]){ x = a[x]; } return x;}void merge(int u, int v){ int f1, f2; f1 = find(原创 2016-04-15 19:14:40 · 495 阅读 · 0 评论 -
POJ 3026 Borg Maze 最小生成树Prim+BFS
解题思路,每个点都要标上号,用BFS搜索x,y(第i号顶点)到其余个顶点的距离,存了数组dis里面 就是prim算法的a[]数组代码如下#include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;struct node{ int x,原创 2016-08-04 14:44:59 · 198 阅读 · 0 评论