随笔分类 -  并查集——最小生成树

摘要:Connect the CitiesTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7269Accepted Submission(s): 2076Problem DescriptionIn 2100, since the sea level rise, most of the cities disappear. Though some survived cities are still connected with others, but m 阅读全文
posted @ 2013-08-29 18:12 我家小破孩儿 阅读(174) 评论(0) 推荐(0)
摘要:#include #include#include usingnamespacestd;intparent[10];intn,m;inti,j;structedge{intu,v,w;//边的顶点,权值 }edges[10];//初始化并查集 voidUFset(){for(i=1;i=0;temp=parent[temp]);//压缩路径 while(temp!=i){intt=parent[i];parent[i]=temp;i=t;}returntemp;}//合并两个元素a,b voidmerge(inta,intb){intr1=find(a);intr2=find(b);inttm 阅读全文
posted @ 2013-08-23 13:47 我家小破孩儿 阅读(145) 评论(0) 推荐(0)
摘要:#include #include#include using namespace std; #define M 100 //最多边数#define N 100 //最多顶点数typedef struct edge { int a; int b; int value; }edge; edge edges[M]; int final[N]; //存储父节点int nodecount[N]; //存储该节点孩子结点的个数bool cmp(edge a,edge b) { return a.value%d\n",edges[i].a,edges[i].b); } if(num==n-1) 阅读全文
posted @ 2013-08-23 13:38 我家小破孩儿 阅读(159) 评论(0) 推荐(0)
摘要:所谓生成树,就是n个点之间连成n-1条边的图形。而最小生成树,就是权值(两点间直线的值)之和的最小值。首先,要用二维数组记录点和权值。如上图所示无向图:int map[7][7]; map[1][2]=map[2][1]=4; map[1][3]=map[3][1]=2; ......然后再求最小生成树。具体方法是:1.先选取一个点作起始点,然后选择它邻近的权值最小的点(如果有多个与其相连的相同最小权值的点,随便选取一个)。如1作为起点。visited[1]=1;pos=1;//用low[]数组不断刷新最小权值,low[i](0#include#define MAX 0x3f3f3f3f//创 阅读全文
posted @ 2013-08-23 10:03 我家小破孩儿 阅读(191) 评论(0) 推荐(0)
摘要:继续畅通工程Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10653Accepted Submission(s): 4654Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。Input测试输入包含若干 阅读全文
posted @ 2013-08-22 23:28 我家小破孩儿 阅读(254) 评论(0) 推荐(0)
摘要:畅通工程再续Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11114Accepted Submission(s): 3383Problem Description相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考察小组RPRush对百岛湖的情况充分了解后,决定在符合条件的小岛间建上桥 阅读全文
posted @ 2013-08-22 22:28 我家小破孩儿 阅读(225) 评论(0) 推荐(0)
摘要:等价关系与等价类从数学上看,等价类是一个对象(或成员)的集合,在此集合中的所有对象应满足等价关系。若用符号"≡"表示集合上的等价关系,那么对于该集合中的任意对象x,y, z,下列性质成立:1、自反性:x ≡ x2、对称性:若 x ≡ y 则 y ≡ x3、传递性:若 x ≡ y 且 y ≡ z 则 x ≡ z因此,等价关系是集合上的一个自反、对称、传递的关系。通过金属线连接起来的电器的连通性,就是一种等价关系。这种关系显然具有自反性,因为任何一个器件都是与自身连通的;如果a 电连通b,那么b一定也电连通a,因此这种关系具有对称性; 若a连通到b,并且b连通到c,那么a连通到 阅读全文
posted @ 2013-08-22 21:09 我家小破孩儿 阅读(172) 评论(0) 推荐(0)
摘要:畅通工程Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 13046Accepted Submission(s): 5332Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。Input测试输入包含若干测试用例。每个测试用例的第 阅读全文
posted @ 2013-08-22 21:06 我家小破孩儿 阅读(231) 评论(0) 推荐(0)
摘要:还是畅通工程Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 20659Accepted Submission(s): 9180Problem Description某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。Input测试输入包含若干测试用例。每个测试用 阅读全文
posted @ 2013-08-22 21:04 我家小破孩儿 阅读(218) 评论(0) 推荐(0)