题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 题解: 纯最小生成树,只是有些边已经确定了要加入生成树中,特殊处理一下这些边就可以了. kruskal算法: 由于有些边已经确定,所以在调用kruskal()之前,就把这条边的两个顶点放在一个集合就可以了. #include<cstdio>//hdu1102 最小生成树 kruskal #include<algorithm> #define N 110 using namespa…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1102 /************************************************************************/ /* hdu Constructing Roads 最小生成树 题目大意:在N个村子中已经存在部分存在连通,建最少长度的路使得所有的村子连通. 解题思路:已经连通的村子其中间的路径作为0,即修建的时候修建为0耗费,求这些节点的最小生成树. */ /*…
最小生成树模板(嗯……在kuangbin模板里面抄的……) 最小生成树(prim) /** Prim求MST * 耗费矩阵cost[][],标号从0开始,0~n-1 * 返回最小生成树的权值,返回-1表示原图不连通 */ const int INF = 0x3f3f3f3f; const int MAXN = 110; bool vis[MAXN]; int lowc[MAXN]; int map[MAXN][MAXN]; int Prim(int cost[][MAXN], int n) {…
Constructing Roads Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 2421 Appoint description:  System Crawler  (2015-05-27) Description There are N villages, which are numbered from 1 to N, and y…
Problem Description There are N villages, which are numbered from 1 to N, and you should build some roads such that every two villages can connect to each other. We say two village A and B are connected, if and only if there is a road between A and B…
嘎唔!~又一次POJ过了HDU错了...不禁让我想起前两天的的Is it a tree?   orz..这次竟然错在HDU一定要是多组数据输入输出!(无力吐槽TT)..题目很简单,炒鸡水! 题意: 告诉你每个村庄之间的距离,和几组已经联通的村庄,求使所有村庄联通所要建的道路的最短距离. 很简单,用最小生成树的Prim算法,相当于邻接矩阵已知,把已联通的村庄之间的距离改为零即可. 附上AC代码: #include <stdio.h> #include <string.h> #incl…
//克鲁斯卡尔(最小生成树) #include<cstdio> #include<iostream> #include<algorithm> using namespace std; ; int n, t; struct node { int bagin, end, len; }arr[maxn]; int fa[maxn]; void init() { ; i <= n; i++) { fa[i] = i; } } bool cmp(node a, node b…
There are N villages, which are numbered from 1 to N, and you should build some roads such that every two villages can connect to each other. We say two village A and B are connected, if and only if there is a road between A and B, or there exists a…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 Problem Description There are N villages, which are numbered from 1 to N, and you should build some roads such that every two villages can connect to each other. We say two village A and B are conne…
题目大意:输入一个整数n,表示村庄的数目.在接下来的n行中,每行有n列,表示村庄i到村庄 j 的距离.(下面会结合样例说明).接着,输入一个整数q,表示已经有q条路修好. 在接下来的q行中,会给出修好的路的起始村庄和结束村庄.. 输入样例说明如下: 解题思路:最小生成树(kruscal算法) 1)以前的题会直接给村庄编号以及村庄距离.而这道题,这是给出村庄的距离矩阵.村庄的编号信息蕴含在 矩阵中.这时候的读取方法为: for(i = 1 ; i <= n ; ++i){ for(j = i +…