图论-生成树
文章平均质量分 75
围巾的ACM
啊啊什么时候也能成为一个大牛啊
展开
-
2015’12杭电校赛1004 Happy Value (最大生成树)
题解最大生成树,用kruskal算法把排序函数符合改一下就是最大生成树了代码#include <cstdio>#include <queue>#include <cstring>#include <iostream>#include <cstdlib>#include <algorithm>#include <vector>#include <map>#include <string原创 2016-01-06 21:51:18 · 259 阅读 · 0 评论 -
poj1679 The Unique MST(次小生成树)
题意:给你一个n个点m条边的无向图,问你该图的最小生成树是否唯一?如果唯一输出,树的权值,否则输出'Not Unique!'.思路:本题求该无向图的次小生成树的权值是否等于最小生成树的权值,一个图的次小生成树的权值Trick:删除一条边之后原图可能不连通,返回-1,注意考虑清楚#include #include #include #include #include #原创 2016-02-01 15:11:03 · 299 阅读 · 0 评论 -
POJ 1789 Truck History(最小生成树)
题意:题意杀...用一个7位的string代表一个编号,两个编号之间的distance代表这两个编号之间不同字母的个数。一个编号只能由另一个编号“衍生”出来,代价是这两个编号之间相应的distance,现在要找出一个“衍生”方案,使得总代价最小,也就是distance之和最小。思路:计算出距离然后套模板即可,关键是要看懂题目#include #include #include原创 2016-02-01 14:26:53 · 1095 阅读 · 0 评论 -
poj3026 Borg Maze (BFS+最小生成树)
思路:先BFS求出S到各点A的最短距离,建图然后套模板#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 100000#defin原创 2016-02-01 16:24:27 · 471 阅读 · 0 评论 -
BZOJ 1083: [SCOI2005]繁忙的都市 kruskal
思路:直接求Kruskal然后顺便记录一下最大边即可#include<bits/stdc++.h>using namespace std;const int maxn = 20050;struct Edge{ int u,v,dist; Edge(){} Edge(int u,int v,int dist):u(u),v(v),dist(dist){} boo原创 2016-04-13 22:22:49 · 349 阅读 · 0 评论 -
UVA 1395 Slim Span(生成树)
题意:给一个n结点的图,求最大边减去最小边尽量小的生成树思路:首先把边的权值从小到大排序,对于一个连续的区间[L,R],如果这些边使得n个结点连通,则一定存在一个苗条度不超过W[R]-W[L]的生成树,那么可以从小到大枚举L,对于每个L,从小到大枚举R#includeusing namespace std;const int maxn = 100+10;const int原创 2016-04-16 12:06:23 · 336 阅读 · 0 评论 -
UVA 1151 Buy or Build(生成树+二进制枚举)
题意思路:见紫书#includeusing namespace std;const int maxn = 1000+10;const int maxm = 10000+10;#define INF 1e9int n,m;struct Edge{ int u,v,dist; Edge(){} Edge(int u,int v,int dist):u(u),v(v),原创 2016-04-16 12:09:52 · 327 阅读 · 0 评论 -
HDU 4463 Outlets(最小生成树)
思路:先按题目给的那两个点连一条边,然后剩下的求kruskal就好了#include #include #include #include #include #include #include #include #include #include #include #include #define INF 0x3f3f3f3f#define esp 1e-9原创 2016-07-23 21:02:50 · 331 阅读 · 0 评论 -
hdu5723 Abandoned country(最小生成树+任意点对距离)
思路:先跑一个最小生成树然后建好生成树,DFS直接求出任意点对距离求平均即可坑点:各种爆int#includeusing namespace std;#define LL long longint cas=1,T;const int maxn = 100000+500;const int maxm = 1000000+500;struct Edge{ int u,v原创 2016-07-19 21:58:16 · 1011 阅读 · 0 评论 -
hdu3080 The plan of city rebuild(最小生成树)
思路:比较简单的最小生成树,读懂题就好了#include#include#include#includeusing namespace std;const int INF =1e6;const int maxn=205;int n,m,t; //总点数,总边数,desert的边数int des[maxn]; //为1代表城市荒废int fa[maxn];原创 2016-07-30 23:42:18 · 314 阅读 · 0 评论 -
POJ 3723 Conscription(最大生成树)
思路:比较显然的求个最大生成树然后10000*(n+m)-权值即可#include#include#include#includeusing namespace std;const int maxn = 50000+7;struct Edge{ int u,v,w;}e[maxn];bool cmp(Edge a,Edge b){return a.w>b.w;}i原创 2016-09-20 18:18:55 · 517 阅读 · 0 评论 -
poj1258 Agri-Net(最小生成树)
思路:模板题..#include#include#includeusing namespace std;const int maxn =100+10;const int maxm=10000+10;struct Edge{ int u,v,dist; Edge(){} Edge(int u,int v,int dist):u(u),v(v),di原创 2016-02-01 14:03:13 · 353 阅读 · 0 评论 -
poj1751 Highways(最小生成树)
题意:有一个N个城市M条路的无向图,给你N个城市的坐标,然后现在该无向图已经有M条边了,问你还需要添加总长为多少的边能使得该无向图连通.输出需要添加边的两端点编号即可.思路:最小生成树#include#include#includeusing namespace std;const int maxn=750+10;const int maxm=500000;struc原创 2016-02-01 13:59:51 · 305 阅读 · 0 评论 -
poj2349Arctic Network (最小生成树运用)
题意:看半个小时的题...大概就是说有n个科研站, 要把这些站用卫星或者无线电连接起来,使得任意两个科研站都能直接或者间接相连。如果任意两个都有安装卫星设备的,都可以直接通过卫星通信,不管它们距离有多远。 而安装有无线电设备的两个站,距离不能超过D。 D越长费用越多。现在有s个卫星设备可以安装,还有足够多的无线电设备,求一个方案,使得费用D最少(D取决与所有用无线电通信的花费最大的那条路径原创 2016-01-29 11:30:52 · 342 阅读 · 0 评论 -
uva11183 Teen Girl Squad(最小树形图朱刘算法)
思路:朱刘算法模板题...#include #include const int MAXNODE = 1005;const int MAXEDGE = 40005;typedef int Type;const Type INF = 0x3f3f3f3f;struct Edge { int u, v; Type dist; Edge() {} Edge(int原创 2016-01-28 23:04:02 · 511 阅读 · 0 评论 -
uva11865 Stream My Contest (朱刘算法+二分)
题意:有n台机器(编号为0—n-1,其中机器0是服务器),m条网线(每条网线相当于一条有向边,有相应的带宽和代价),c的钱,给定c,求用m条网线搭建一个网路,使得每台机器都可以从服务器接收到信息,且带宽的最小值达到最大思路:朱刘算法模板+二分宽带#include #include #include #include using namespace std;typedef原创 2016-01-29 17:48:33 · 286 阅读 · 0 评论 -
HDU 1875 畅通工程再续(最小生成树)
思路:模板题#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 110#define LL long long原创 2016-01-31 20:49:04 · 262 阅读 · 0 评论 -
hdu1233 还是畅通工程
思路:模板题#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 110#define LL long long原创 2016-01-31 22:09:35 · 282 阅读 · 0 评论 -
poj1251 Jungle Roads
思路:模板题..由于SB把初始化写成了并查集的初始化找了好久错...#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define m原创 2016-01-31 22:25:02 · 252 阅读 · 0 评论 -
poj1287 Networking
思路:最小生成树模板题#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 1000#define LL lon原创 2016-01-31 22:57:16 · 257 阅读 · 0 评论 -
poj2421Constructing Roads(最小生成树)
思路:一些已经连好的边添加一条权值为0的路,然后就是上模板了,又SB忘记init()#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#原创 2016-01-31 23:16:29 · 696 阅读 · 0 评论 -
zoj1586 QS Network(最小生成树)
思路:题意杀...能看懂题目就很好做了,边的权值还要加上两个点的权值,然后就是模板了Trick:边的数量很多,数组要开大一点...开小了居然不是RE..而是WA...#include #include #include #include #include #include #include #include #include #include #include原创 2016-02-01 10:41:35 · 401 阅读 · 0 评论 -
poj2031 Building a Space Station(最小生成树)
题意:给出一些三维球体球心的坐标和半径,问使全部球体属于同一个连通分块的最少代价,代价就是球心距离减去两者半径。注意的是如果两个球体已经连通了就给它们加一条权值为0的边,模板即可。#include #include #include #include #include #include #include #include #include #include #inc原创 2016-02-01 12:20:17 · 277 阅读 · 0 评论 -
51nod 1640 天气晴朗的魔法(kruskal)
思路:题目比较难懂,其实就是先求一次最小生成树把最大的边权记录下来,然后对小于这个边权的边做一次最大生成树就可以了#includeusing namespace std;const int maxn = 1e5+7;const int maxm = 2*1e5+7;#define LL long longint fa[maxn];int Find(int x){return原创 2016-10-05 16:24:15 · 1114 阅读 · 0 评论