随笔分类 -  最小生成树

1
摘要:/*题意:每个城市有人口,现在有一棵最小生成树,将其中一条边割开,然后选出两个城市的人口A/剩余的最小生成树中的边和B,使其比值尽可能大。次小生成树求环上的最大值*/#include#include#include#include#includeusing namespace std;#define... 阅读全文
posted @ 2014-11-04 10:37 HYDhyd 阅读(166) 评论(0) 推荐(0)
摘要:/*因为15很小可以暴力枚举然后用最小生成树的prim来计算*/#include#include#include#define N 40#define inf 0x3fffffffint a[N],f[N],en[N];int ma[N][N],n,m;double dd;void prime()... 阅读全文
posted @ 2014-09-17 14:53 HYDhyd 阅读(162) 评论(0) 推荐(0)
摘要:/*迭代法 :204Ms*/#include#include#include#define N 1100#define eps 1e-10#define inf 0x3fffffffstruct node { int u,v,w;}p[N];double ma[N][N];double dist... 阅读全文
posted @ 2014-08-19 09:52 HYDhyd 阅读(204) 评论(0) 推荐(0)
摘要:转载:http://blog.csdn.net/sdj222555/article/details/7490797网上有一些很数学的证明方法,表示看的挺晕,自己理解了一下后,发表下自己的看法,如果有错误,再进行修改其实原题就是求 MIN( ∑CiXi / ∑DiXi ) Xi∈{0,1} ,对每个生... 阅读全文
posted @ 2014-08-19 09:43 HYDhyd 阅读(226) 评论(0) 推荐(0)
摘要:/*次小生成树题意:给你一些路径,现在将一部分路径权值减少后问是否可以替代最小生成树里面的边。解:次小生成树,即将这条边连上,构成一个环求出任意两点路径之间的除了这条边的最大值,比较这个最大值>=这条边,说明可以替换。prime算法次小生成树模板*/#include#include#define N... 阅读全文
posted @ 2014-08-18 15:38 HYDhyd 阅读(148) 评论(0) 推荐(0)
摘要:#include #include using namespace std;typedef struct { long v; long next; long cost;}Edge;typedef struct { long v; long cost;}node;bool... 阅读全文
posted @ 2014-08-18 14:51 HYDhyd 阅读(351) 评论(0) 推荐(0)
摘要:/*刚开始想错了,我以为必须是相邻的点才能连接,原来无线距离可以任意连接对最小生成树理解不够深啊*/#include#include#include#include#define N 600struct node { int u,v;}f[N];struct nodee{ int u,v; d... 阅读全文
posted @ 2014-08-18 11:27 HYDhyd 阅读(183) 评论(0) 推荐(0)
摘要:转载:http://www.cnblogs.com/hxsyl/p/3290832.html 为什么写这个呢?因为那天听到了这个词,属于MST的扩展……最小K度树有空研究。一.理论准备 需要读者事先懂得prime算法,不太了解的请看博主这一篇http://www.cnblogs.co... 阅读全文
posted @ 2014-08-18 09:39 HYDhyd 阅读(135) 评论(0) 推荐(0)
摘要:#include#includeusing namespace std;int map[505][505];int v, e;int prime(){ bool vis[505]; int dist[505]; int i,j,sum=0; for(i=1;imap[k][j]) ... 阅读全文
posted @ 2014-08-16 11:10 HYDhyd 阅读(368) 评论(0) 推荐(0)
摘要:/*只需判断等效边和必选边的个数和n-1的关系即可*/#include#include#define N 110struct node { int u,v,w;}f[N*N*2];int cmp(const void *a,const void*b) {return (*(struct node ... 阅读全文
posted @ 2014-08-14 20:31 HYDhyd 阅读(144) 评论(0) 推荐(0)
摘要:/* 题意 :有一些边权值为1和0,判断是否存在一个生成树使得他的总权值为一个斐波那契数。 解法:建立一个最小生成树向里面加权值为1的边替换为0的边,保证原来的联通。因为权值为1,可直接求出最大生成树和最小生成树。 判断他们中间是否有斐波那契数即可,当然要先判断是否可以构成一个生成树。 这个... 阅读全文
posted @ 2014-08-02 20:17 HYDhyd 阅读(386) 评论(0) 推荐(0)
摘要:/*关于最小生成树的等效边,就是讲两个相同的集合连接在一起 先建立一个任意最小生成树,这条边分开的两个子树的节点最大的一个和为A,sum为最小生成树的权值和,B为sum-当前边的权值 不断枚举最小生成树中的边找最优值即可。*/#include#include#include#include#de... 阅读全文
posted @ 2014-08-02 18:28 HYDhyd 阅读(159) 评论(0) 推荐(0)
摘要:【HDU】1213 How Many Tables 根蒂根基并查集★1272 小希的迷宫 根蒂根基并查集★1325&&poj1308 Is It A Tree? 根蒂根基并查集★1856 More is better 根蒂根基并查集★1102 Constructing Roads 根蒂根基最小生成树... 阅读全文
posted @ 2014-05-26 18:28 HYDhyd 阅读(205) 评论(0) 推荐(0)
摘要:#include#include#define inf 0x3fffffff#define N 600struct node {int x,y,w;}ma[N*N];int cmp(const void *a,const void *b) {return (*(struct node *)a).w... 阅读全文
posted @ 2014-05-20 19:55 HYDhyd 阅读(147) 评论(0) 推荐(0)
摘要:#include#include#include#include#define N 700#define NN 2000010int prime[NN];int a[N];struct node {int x,y,w;}ma[N*N];void ispri() { int i,j; memset(p... 阅读全文
posted @ 2014-05-20 10:07 HYDhyd 阅读(212) 评论(0) 推荐(0)
摘要:#include#include#define N 1100struct node {int u,v,w;}bian[110000];int pre[N];int cmp(const void *a,const void *b) {return (*(struct node *)b).w-(*(st... 阅读全文
posted @ 2014-05-11 09:42 HYDhyd 阅读(121) 评论(0) 推荐(0)
摘要:#include#include#include#define N 200double co(double a,double b) { return (a-b)*(a-b);}struct node { double x,y,z,r;}a[N];struct nodee{ double len; i... 阅读全文
posted @ 2014-04-08 10:01 HYDhyd 阅读(148) 评论(0) 推荐(0)
摘要://暴力+并查集#include#include#define N 300#define inf 0x7fffffffstruct node {int x,y,spee;}map[N*4];int pre[N];int find(int n) {if(n!=pre[n])pre[n]=find(pr... 阅读全文
posted @ 2013-11-11 17:09 HYDhyd 阅读(157) 评论(0) 推荐(0)
摘要:dijkstra借鉴http://blog.csdn.net/wangjian8006/article/details/7871812#include#include#define N 300#define inf 999999999double map[N][N],dis[N];double ma... 阅读全文
posted @ 2013-11-03 22:22 HYDhyd 阅读(142) 评论(0) 推荐(0)
摘要:#include#include#define N 30#define inf 999999999int map[N][N],next[N],visit[N];int main() {int a,b,i,j,cnt,sum,t,n,m;char ch,c;while(scanf("%d",&n),n... 阅读全文
posted @ 2013-10-31 15:31 HYDhyd 阅读(101) 评论(0) 推荐(0)

1