先求出最小生成树,然后枚举树上的边,对于每条边“分别”找出这条割边形成的两个块中点权最大的两个
1.由于结果是A/B,A的变化会引起B的变化,两个制约,无法直接贪心出最大的A/B,故要通过枚举
2.不管magic road要加在哪里,加的边是否是最小生成树上的边,都会产生环,我们都要选择一条边删掉
注意删掉的边必须是树的环上的边,为了使结果最大,即找出最大的边
3.可以枚举两点,找出边,也...
分类:
其他好文 时间:
2014-06-20 09:09:03
阅读次数:
233
POJ1258
思路:首先把第一个结点加入树中,每次往树中加入一个结点,加入的结点必须是与当前树中的结点距离最小那个点,这样每次把结点加入树中选取的都是最小权值,循环n-1次后把所有结点都加入树中。
#include
#include
#include
using namespace std;
const int MAXN = 1e9;
//创建map二维数组储存图表,low数组记录每2个点...
分类:
其他好文 时间:
2014-06-19 09:54:24
阅读次数:
255
最小生成树即在加权连通图里寻找n-1条边,连接n个顶点,并且使得所有边的权重之和最小。最小生成树常用的算法有prim算法和kruskal算法。
1. prim算法
prim算法的基本步骤是:假设图的顶点集合为V,边集合为E,初始化集合U={u},此时集合中只有一个结点u,从u的邻接顶点中选取一个顶点v,使得这两个顶点之间的权重最小,然后把v加入结合U中,再从结点v出发,选取最小权重对应的结点加...
分类:
其他好文 时间:
2014-06-15 14:58:46
阅读次数:
187
大连金州以南地区大连城建坐标系采用1954年北京坐标系,高斯投影3度带(应该为1.5度带,文献有误?),中央子午线经度值:121°30′,横坐标的加常数:30公里。瓦房店市、长兴岛采用1980西安坐标系,普兰店、庄河、长海、花园口经济区采用1954北京坐标系,全市没有统一的坐标系统。2000大连市独...
分类:
其他好文 时间:
2014-06-14 19:24:42
阅读次数:
3095
这题 唯一的价值应该就是 稍微用了下map 同时也算自己对于prim算法的再次练手吧..... touch me其余的 没什么好讲的 就是保留1位小数 这边的数据范围 题目没有给出 我也一直不知道......明天 考6J了.....说些什么 上帝才能听到我的祈求呢~ 1 // TOJ 2119 最....
分类:
其他好文 时间:
2014-06-14 19:07:18
阅读次数:
150
题目链接:Frogger
题意:两只青蛙,A和B,A想到B哪里去,但是A得弹跳有限制,所以不能直接到B,但是有其他的石头作为过渡点,可以通过他们到达B,问A到B的所有路径中,它弹跳最大的跨度的最小值
PS:最小生成树过的,刚开始用Dijstra做,Kao,精度损失的厉害,对于Dijksra的变形不大会变啊,看了Discuss有人用最小生成树过,我一划拉,还真是,敲了,就过了,等会研究研究最...
分类:
其他好文 时间:
2014-06-14 10:35:14
阅读次数:
271
今天中午做的 第一次用邻接表去实现...我就写了下prim的 相比于kruskal
还是更喜欢它多一点...虽然知道prim+heap优化 可是我写不来.....对于 heap 虽然觉得它的概念很简单 但实现起来真的好伤啊..我想
对于prim的理解应该差不多了 基本上可以直接手码出来了 虽然这个很...
分类:
其他好文 时间:
2014-06-12 06:04:05
阅读次数:
369
点击打开链接
求MST的最长边~
prim
#include
#include
#include
#include
#define Min(a,b) (a)<(b)?(a):(b)
using namespace std;
const int INF = 1000000000;
const int maxn = 2000 + 5;
struct pto
{...
分类:
其他好文 时间:
2014-06-11 06:45:17
阅读次数:
235