摘要:
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1162#include#includebool P[110];//标记数组,标记某一个点是否已经连接到树上struct point{ double x,y;}Point[110],A[110];double SegLen(point a,point b){ return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));}int main(){ int n,i,num,j; int Min; //Min表示第Min个点到已经连接... 阅读全文
posted @ 2012-08-09 16:13
一生挚爱
阅读(147)
评论(0)
推荐(0)
摘要:
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3371解题思路:题目要我们在已经有的一部分点相连的情况下求最小生成树。首先用并查集将所有城市分离成一个独立的点然后用已经存在的路去连接一部分点,使其构成一棵树,然后用Kruskal 算法 贪心求出最小生成树。实现代码如下:#include #include struct road { int x,y; int w; }a[25010]; int per[510]; int cmp(const void *a,const void *b) { if(((ro... 阅读全文
posted @ 2012-08-09 15:24
一生挚爱
阅读(170)
评论(0)
推荐(0)
摘要:
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1863最小生成树kruskal算法:http://www.zhuoda.org/irini/78592.html一开始看到题目的时候就知道是求最小生成树的题目,而且可以用并查集了构建树,但是不知道怎么将并查集和求最小生成树的算法结合起来,后来看到了最小生成树Kruskal算法是用贪心求最小生成树的,每次都都取权值最小的边去构建树,如果两点的祖先结点相同,及直接连通或者间接连通的时候则不再建边否则创建边使连点直接或间接连通。实现算法如下:#include#include#include#define MA 阅读全文
posted @ 2012-08-09 09:44
一生挚爱
阅读(199)
评论(0)
推荐(0)

浙公网安备 33010602011771号