图论-二分图
图论-二分图
键盘上的艺术家w
努力奋斗
展开
-
hdu1845
/*求最大匹配个数,无向图等于最大匹配/2;此题有毒~~~我将最后的代码最后用一个solove函数写就过了,写在主函数下面就过不了 哈哈*/#include#include#include#includeusing namespace std;#define MAX 5010vectorG[MAX];bool vis[MAX];int n,m;int match[MAX原创 2017-08-07 21:17:08 · 330 阅读 · 0 评论 -
hdu2768猫和狗 最大独立集
/*题意:给出n只猫,n只狗,k个人投票,下面k行是投票的结果,第一个是表示他喜欢的动物,第二个表示他讨厌的动物,如果讨厌的动物留下了则这个人就不会来观看动物了。求最大量的观众。思路:一开始没想到要这样建立图,唉 太菜了,根据两个人有矛盾的话他们就连一条边,(既他不喜欢的动物==另外一个人喜欢的),然后求最大独立集即可,最大独立集等于:顶点数-最大匹配数。*/#include#i原创 2017-08-04 21:26:41 · 259 阅读 · 0 评论 -
hdu1281最大匹配
/*题意:要求放车的数目尽量多。 但是一行一列只能有一个车,所以以横坐标为一个集合,以纵坐标为另外一个集合,以输入放车的点,连边建好图。一行一列只有一个车,正好对应二分图的匹配,一一对应,尽量多,则是求最大的匹配。然后中要点指的是删除某个车,使得最大匹配变小,也就是删除某条边,能改变最大匹配。则这就是一个重要的点。*/#include#include#include#include原创 2017-08-04 20:40:34 · 281 阅读 · 0 评论 -
hdu 1068 最大独立集
/* 题意:给你一些人的关系,要你求一个集合,使得集合里的人都互相不认识。 输入第一行 n个人,然后是第i个人认识哪些人。 求二分图的最大独立集 =最大匹配数。 */#include#include#include#includeusing namespace std;#define MAX 10010int n;vectorG[MAX];int match[MAX];原创 2017-08-04 20:05:02 · 291 阅读 · 0 评论 -
hdu1054 最小点覆盖
/* 题意:就是在一个图上放一个士兵他可以观察与之相连的边的情况。问最少要放多少个士兵可以观察所有边的情况。 我也不知道为啥就是二分图最小点覆盖,看了这个问题就往那里想。自己画个图还真是。 思路: 二分图的最小点覆盖,用最少的点覆盖所有边。 最小点覆盖等于=最大匹配数。 无向图最小点覆盖=最大匹配数/2 */#include#include#include#include原创 2017-08-04 16:24:17 · 276 阅读 · 0 评论 -
hdu1083培训班 ~~二分图最大匹配
/*题意:为P门课在n个同学中选课代表,判断能不能为这p们课都选到一个课代表。输入第一行是t组输入数据,第二行是p门课n个同学。接下来的p行是对第p门课感兴趣的同学。第一个数是个数,后面是那些人对此门课感兴趣。给出了课程和学生两个集合,将他们划分为两边,对此门课感兴趣,则这门课的标号与同学的标号有一条边。最后选出来的 课程与同学是一一对应的。所以给课程匹配课代表,要求每门课都要有课代表,所以原创 2017-08-04 15:29:29 · 234 阅读 · 0 评论 -
hdu3861
/*唉~~英语不好理解不了题意。我是网上先看别人做的题意,在做题。 唉~~~~~~悲哀~~~题意:有个国王 要给自己的国家分块,然后给你一些路,两个城市可以互相到达的城市要在一个块(强连通分量),然后每个城市只能在一个快,然后一个强连通到另一个强联通分量有变得可以划分为一个块,问你最少花费的块数,理解好题意就好做了。思路:先用trajan算法缩点,然后重建图,重建图之后 就是一个最小路径原创 2017-08-08 22:35:26 · 359 阅读 · 0 评论 -
hdu4160二分图最小路径覆盖
/*题意:一个玩偶有三个量(w,l,h),如果一个玩偶的三个量都比另外一个玩偶的三个量都小那么小的玩偶就可以放在大的玩偶里面。然后整体放一个盒子里,求最少需要几个盒子可以放下所有的玩偶,大概意思就是这样子。输入 第一行t组数据,然后是n表示有n个玩偶,接着就是玩偶的三个量。思路:哈哈~~这个题还是自己建图,自己求二分匹配的。这题不难,小的玩偶可以放进大的玩偶,那么我们可以这样建立图。如原创 2017-08-08 19:39:52 · 233 阅读 · 0 评论 -
hdu4185 二分图之最大匹配
/*哎哟~~英文水平不好理解不了题意,在网上看的题意。给你一个矩阵 由.和#组成,#代表10*10油,点代表水,现在用一个20*10的勺子从海里把油弄上来,不能将海水和油一起弄上来,问你最多能挖多少勺油上来。思路:是每两个连在一起的#号一勺油,可以将他们连一条边,然后一共有多少条边,就是多少勺油。二分图的最大匹配~~~就是顶点与顶点一一对应匹配,这里也是,两个#一一匹配。求最大能匹配多少原创 2017-08-08 19:17:06 · 273 阅读 · 0 评论 -
hdu1151最小路径覆盖
/*题意:一个有n个路口和m条单项的的街道,无环图,要派一些伞兵去镇守成寿寺,要到达所有路口,只要有伞兵到达就可,每个伞兵从降落的那个路口可以去沿着街道去其他路口。求最少要几个伞兵可以镇守整个路口 。思路:二分图最小点覆盖,用最少的点去覆盖所有边=最大匹配数*/#include #include #include using namespace std;vectormap[50原创 2017-08-05 11:39:12 · 286 阅读 · 2 评论