顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情...
分类:
其他好文 时间:
2014-08-09 18:12:58
阅读次数:
338
用01分数规划 + prime + 二分 竟然2950MS惊险的过了QAQ前提是在TLE了好几次下过的 = =题目意思:有n个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水,只要两个村庄之间有一条路即可,建造水管距离为坐标之间的欧几里德距离,费用为海拔之差,现在要求方案使得费用与距离的比值最小,很...
分类:
其他好文 时间:
2014-08-08 12:27:35
阅读次数:
315
1 /* 2 10034 - Freckles 3 克鲁斯克尔最小生成树!~ 4 */ 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 11 struct node{12 double x, y;13...
分类:
其他好文 时间:
2014-08-08 01:54:15
阅读次数:
234
Connect the CitiesTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9941Accepted Submission(s): 2827...
分类:
其他好文 时间:
2014-08-08 01:46:25
阅读次数:
283
最小生成树模板题
#include
using namespace std;
int dist[120],m[120][120];
void prim(int n,int dist[],int m[][120])
{
bool p[1020];
for(int i=2;i<=n;i++)
{
p[i]=false;
dist[i]=m[1]...
分类:
Web程序 时间:
2014-08-07 15:56:40
阅读次数:
246
Connect the Cities
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 9856 Accepted Submission(s): 2800
Problem Description
In 2100...
分类:
其他好文 时间:
2014-08-07 15:44:50
阅读次数:
231
对于最终生成的最小生成树中最长边所连接的两点来说 不存在更短的边使得该两点以任何方式联通
对于本题来说 最小生成树中的最长边的边长就是使整个图联通的最长边的边长
由此可知只要对给出城市所抽象出的图做一次最小生成树 去树上的最长边即可
#include
using namespace std;
int dist[1020],m[1020][1020];
void prim(int n,int...
分类:
其他好文 时间:
2014-08-07 13:16:40
阅读次数:
235
Kruskal算法
求解最小生成树的另一种常见算法是Kruskal算法,它比Prim算法更直观。从直观上看,Kruskal算法的做法是:每次都从剩余边中选取权值最小的,当然,这条边不能使已有的边产生回路。
手动求解会发现Kruskal算法异常简单,下面是一个例子
算法说明
为了判断环的出现,我们换个角度来理解Kruskal算法的做法:初始时,把图中的n个顶点看成是独立的n个连通分量,从树的角度看,也是n个根节点。我们选边的标准是这样的:若边上的两个顶点从属于两个不同的连通分量,则此边可取...
分类:
其他好文 时间:
2014-08-07 13:10:50
阅读次数:
163
Kruscalelimination:很裸的KruscalTemplate(求最小生成树中最长路,即最短路中最长路)//#pragma comment(linker, "/STACK:16777216") //for c++ Compiler#include #include #include #i...
分类:
其他好文 时间:
2014-08-07 13:05:40
阅读次数:
219
题目链接:
啊哈哈,点我点我
思路:
首先把图中的A S预处理出来,然后对这些点逐一做bfs找到这些点到其它点的最短路径,然后建图完毕也用最小生成树的prim算法或者kruscal算法求出连接所有点的最短距离。。不知道为嘛用dis数组去维护为什么会超时,而在结构体里面用step数组却可以过,我也不知道为什么,纠结了很多天。。我把错误的代码贴出来,希望各位帮我找出原因,不胜感激。。。
...
分类:
其他好文 时间:
2014-08-07 09:48:49
阅读次数:
242