hdu1102】的更多相关文章

开学第三周.........真快尼 没有计划的生活真的会误入歧途anytime 表示不开心不开心不开心 每天都觉得自己的生活很忙 又觉得想做的事又没有完成 这学期本来计划重点好好学算法,打码码,臭臭美,做点兼职尼 坚持早起啊,一定一定!!!!坚持到成功为止!要不然之前努力就白费了 我想抽空看电影...学做PPt...口语...不能停.....6级.....觉得时间不过用尼  发现白天的生活就是死人一般啊...这些恼人的课ssssss和死板的teachersssssssss 抓 狂 我自我感爆棚了…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 题解: 纯最小生成树,只是有些边已经确定了要加入生成树中,特殊处理一下这些边就可以了. kruskal算法: 由于有些边已经确定,所以在调用kruskal()之前,就把这条边的两个顶点放在一个集合就可以了. #include<cstdio>//hdu1102 最小生成树 kruskal #include<algorithm> #define N 110 using namespa…
题目链接:Highways 没看题,看了输入输出.就有种似曾相识的感觉,果然和HDU1102 题相似度99%,可是也遇到一坑 cin输入居然TLE,cin的缓存不至于这么狠吧,题目非常水.矩阵已经告诉你了.就敲个模板就是了,5分钟.1A 题意就是打印,最小生成树的最大边权.改了改输入,水过 这个题完了.我的个人POJ计划进度以完毕 20/200,这当中主要是图论的题.等下周把POJ计划图论的题目打完,就回头打模拟!我就不信还能比图论难 #include <iostream> #include…
http://acm.hdu.edu.cn/showproblem.php?pid=1102 最小生成树(模板题) 3 0 990 692 990 0 179 692 179 0 1 1 2 一共3个村子,下面是第i行j列 i村子和j村子之间建路需要的距离 下面是一个k 代表有k条路已经修好了,1村子和2村子之间以修路 #include<iostream> #include<math.h> #include<string.h> #include<stdlib.h&…
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…
最小生成树水题.prim一次AC #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <cctype> #include <cmath> #include <algorithm> #include <numeric> #define typec int using namespace std;…
嘎唔!~又一次POJ过了HDU错了...不禁让我想起前两天的的Is it a tree?   orz..这次竟然错在HDU一定要是多组数据输入输出!(无力吐槽TT)..题目很简单,炒鸡水! 题意: 告诉你每个村庄之间的距离,和几组已经联通的村庄,求使所有村庄联通所要建的道路的最短距离. 很简单,用最小生成树的Prim算法,相当于邻接矩阵已知,把已联通的村庄之间的距离改为零即可. 附上AC代码: #include <stdio.h> #include <string.h> #incl…
Constructing Roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 19847    Accepted Submission(s): 7594 Problem Description There are N villages, which are numbered from 1 to N, and you should…
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define M 25000 #define maxn 100000000 struct node { int v1,v2; int dis; }s[M]; int cmp(const node a,const node b) { if(a.dis<b.dis)…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 题意:给出任意两个城市之间建一条路的时间,给出哪些城市之间已经建好,问最少还要多少时间使所有的城市连通? 思路:已经建好的城市之间需要的时间设为0,就是求最小生成树的权值和了. 顺便复习一下prim算法. 讲道理,好像我的prim算法没有判断加入这个点是不是会产生回路? 回答:只有生成树集合里的点加入超过1次的时候,它还是要和集合里的某个点连一条边,于是就产生回路了.所以代码通过vis数组判断…
Constructing Roads Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 54   Accepted Submission(s) : 28 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description There are N villag…
//克鲁斯卡尔(最小生成树) #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…
Prim算法主要用于计算最小生成树.算法在选取最小路径的时候需要优化,算法思路:从某个顶点开始,假设v0,此时v0属于最小生成树结点中的一个元素,该集合假设V,剩下的点待选择的点为U,然后找寻V中的点与U中的点组成的路径最短,该点为vk.把V集合加入,U集合移除vk.然后重复以上步骤,知道U集合为空. 伪代码: void Prim() ; //最小生成树的总长度 set V,U ->V //把0节点加入V中,编号0-n-1 //循环n-1次 int curlen = INF //无限大 ->V…