最小生成树
ijbuhv
这个作者很懒,什么都没留下…
展开
-
poj1789Truck History 最小生成树水题
//n个车牌号,刚开始只有一个车牌,其他车牌都是由一个车牌直接或间接产生//一个车牌到另一个车牌的产生权值是它们之间的数字不同的个数//问产生的最小的边权和//最小生成树#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 2010 ;const int in原创 2015-08-03 14:16:26 · 2671 阅读 · 0 评论 -
hdu2489Minimal Ratio Tree 最小生成树
//给一个完全图,在其中找一颗树,使得边的权值之和除以点的权值之和最小//由于n<=15,直接暴力枚举所有选的点的情况,在从这些点找最小生成树#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int inf = 0x3f3f3f3f ;const int maxn = 20 ;i原创 2015-08-03 15:17:47 · 665 阅读 · 0 评论 -
poj3723Conscription kruskal模板水题
//N个女孩,M个男孩,雇佣一个人的费用为10000 //男孩与女孩之间的关系为d,那么如果雇佣了一个,雇佣另一个的费用为10000-d//每个人只能通过一种关系优惠//问最少需要花费多少雇佣这些人//很明显的最大生成树#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namesp原创 2015-08-04 11:26:27 · 717 阅读 · 0 评论 -
hdu4081Qin Shi Huang's National Road System 次小生成树
//给出每点的坐标和其到人口量,找一个生成树,其中有一条边造价为0//问A/B的最大值,A这条边连接的两个点的人口之和//B除了这条边以外的其他边的长度之和//先找到最小生成树,然后枚举所有边,如果这条边是最小生成树上的边,//直接计算A/(sum-edge) ,如果不是,那么这条边加在最小生成树上会出现一个//环,去除这个环中的最长的边依然是一棵树,//用dp[u][v] 表示在最小生原创 2015-08-04 09:37:03 · 586 阅读 · 0 评论 -
hdu5253 连接的管道 最小生成树水题
//给一个n*m的农田的高度,水的灌溉能从高到低//因为每一块农田的地势高度都不同,所以要想将两块农田的管道链接,//就需要额外再购进跟这两块农田高度差相等长度的管道。//问最少需要多少管道长度能将所有的农田连接起来//很明显的最小生成树#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>usi原创 2015-08-05 11:06:29 · 791 阅读 · 0 评论 -
hdu4786Fibonacci Tree 最小生成树
//给出一个图,图的每一条边可能是白边//也可能是黑边,问能否找到一个生成树//这个生成树中白边的个数是一个fabnaci数//找一个最大生成树和一个最小生成树//在这个范围内有fabnaci数就可以找到#include#include#include#includeusing namespace std;const int maxn = 1e5+10 ;int Fab[ma原创 2015-11-01 11:35:12 · 256 阅读 · 0 评论 -
hdu3367Pseudoforest kruskal求最大生成树
//给一个图,问其边长之和最大伪森林//伪森林是最终所有连通块最多有一个环//刚开始的想法是在这个图的每一个连通子块找其最大生成树//然后在这个子块中找一条不在这个树上加上去,这种想法是错误的,因为可能存在//一个子块可能本来有两个环,但是删除一条小的边使得它成为两个子块比将这个子块删除一个环的边权和大//正确的贪心策略是尽可能的找长的边,如果要合并的两颗子树中都有环就不合并,如果只有一个原创 2015-08-03 18:59:00 · 1186 阅读 · 0 评论