ACMer_ZP的博客

奔向自己的诗和远方

最小点覆盖,最小边覆盖,最大匹配,最小路径覆盖,最大独立集总结。

如果没有申明是什么图默认是二分图最小点覆盖:点覆盖的概念定义: 对于图G=(V,E)中的一个点覆盖是一个集合S⊆V使得每一条边至少有一个端点在S中。最小点覆盖:就是中点的个数最少的S集合。 普通图的最小点覆盖数好像只能用搜索解,没有什么比较好的方法(可能我比较弱。。)所以在此只讨论二分图的最小...

2017-11-18 20:17:37

阅读数 3862

评论数 1

tarjan(hdu 5934)

题目链接 题意:给n个炸弹的坐标和爆炸半径,引爆代价。当另一个炸弹在一个炸弹的爆炸范围之内,则这个炸弹也会爆炸。求让所有炸弹爆炸的最小花费。 思路:根据炸弹之间的关系建图,比如a能引爆b就在a到b建立一条有向边。然后将图缩点,然后统计入度为0的点的爆炸代价,累加就是结果。 同一个强联通分量里...

2017-09-30 18:59:42

阅读数 145

评论数 0

取模最短路

hdu 6071 题意:图上有4个点,给定一个k求从2点出发最后回到2这个点且距离不小于k的最短距离。 思路:题目上说的从2出发最后又回到2,所以这是一个回路,而两个回路可以形成一个新的回路,假如现在有两个回路,长度分别为a和b则可以形成新的回路长度a+n*b。题目上让求不小于k的最短路又是回...

2017-08-05 12:46:13

阅读数 412

评论数 0

最小路径覆盖(二分图)

POJ - 2594 题意:派机器人去火星寻宝,给出一个无环的有向图,机器人可以降落在任何一个点上,再沿着路去其他点探索,我们的任务是计算至少派多少机器人就可以访问到所有的点。有的点可以重复去。 思路:根据题面可以看出是让求最小路径覆盖的,但是又有限制条件,就是每个点可以重复去,但是最小路径...

2017-03-31 17:16:13

阅读数 184

评论数 0

带权二分图匹配KM算法

#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int INF=0x7fffffff; int ...

2016-11-11 17:43:56

阅读数 362

评论数 1

Fleury算法求欧拉路径

注意是有向图 #include//图联通 并且有2个或者没有奇数度节点,没有的是欧拉回路 #include #include #include #include #include using namespace std; const int maxn=1e6+10; struct Edge { ...

2016-10-23 20:45:25

阅读数 253

评论数 0

无向图欧拉路的判定

#include//图联通 并且有2个或者没有奇数度节点,没有的是欧拉回路 #include #include #include #include using namespace std; const int maxn=1e6+10; int bin[maxn]; int finds(int x...

2016-10-23 18:44:31

阅读数 210

评论数 0

二分最大匹配数

#include #include #include #include using namespace std; int z[1010][1010],vis[1010],dis[1010],n,m; int dfs(int k) { for(int i=1; i<=n; i++) ...

2016-10-18 19:47:28

阅读数 142

评论数 0

多边形重心

#include #include #include #include #include using namespace std; #define INF 0.0000001 const int N=10010; int n; typedef struct point { double x...

2016-10-18 19:47:00

阅读数 123

评论数 0

prim及其:队列优化

prim: //矩阵输入的prim 有n*n的矩阵,求最小生成树 #include #include #define spot 1000 const int inf=0x3f3f3f3f; int a[spot+10][spot+10],dis[spot+10],b[spot+10]; //...

2016-10-18 19:11:51

阅读数 209

评论数 0

kruscal

#include//m条边,n个点 #include #include #include using namespace std; int vis[100010]; struct zp { int u; int v; int w; } x[1000010]; bool cm...

2016-10-18 19:06:40

阅读数 187

评论数 0

Floyd最短路

#include #include #include #include using namespace std; const int MAXN=1e3+10; int x[MAXN][MAXN] int main() { int n,m;//n个点m条边 while(~scanf(...

2016-10-18 18:30:55

阅读数 190

评论数 0

Dijkstar及其优先队列优化

#include #include #include #include #include #include #define MAXX 1000000 using namespace std; int n,m,s,t,cont,x[1010][1010]; int first[MAXX],next1...

2016-10-18 18:29:13

阅读数 384

评论数 0

Bellman及其优化

#include #include #include #include #include #include #include #include #define MAXX 1e6 using namespace std; int first[1000010],NEXT[1000010],u[100...

2016-10-18 18:28:41

阅读数 168

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭