二分图
Dan__ge
Today is difficult,tomorrow is more difficult,but the day after is beautiful.
展开
-
HDU 3829 二分图
点击打开链接题意:动物园有n只猫,m条狗,还有p个小孩,每个小孩有一个喜欢的动物和一个讨厌的动物,如果一个小孩喜欢狗,那么他一定不喜欢猫,每个小孩高兴的条件是他喜欢的动物在动物园并且不喜欢的动物不在,问饲养员将那些动物移出动物园可以使最多的小孩高兴思路:最后剩下的小孩他们之间喜欢和讨厌的是不会有冲突的,那么可以转化为开心的小朋友的最大独立集,最大独立集=顶点数-最大匹配;而这个最大匹配是什原创 2016-04-25 18:52:02 · 3791 阅读 · 1 评论 -
UVAlive 6525 二分图匹配
点击打开链接题意:在给定的地图上放象棋中的车,只能放在点上,每一个车它可以攻击这一行这一列,要求满足没有车可以互相攻击的最多的车可以放置,另外,X是墙,可以将两个车分开思路:若是没有X的干扰,那么就是行连列跑二分图就行,但是有这个X,我们依旧可以将所有的点分成行和列,就是连续的在一起的就是同一行或同一列,这样处理就和没有X的是一样的了,跑个模版就可以了 PS:写网络流习惯了,导致没有好原创 2016-09-19 20:05:39 · 361 阅读 · 0 评论 -
POJ 2942 点双联通+二分图染色
点击打开链接题意:给n个骑士和m对关系,关系是互相仇恨,现在召开一个圆桌会议,要求相邻的两个人不能有仇恨关系,问有多少骑士不管怎么分配都不能参加会议思路:白书上的经典例题#include #include #include #include #include #include #include using namespace std;typedef long long ll原创 2016-08-17 11:45:43 · 422 阅读 · 0 评论 -
HDU 3478 二分图判断
点击打开链接题意:给一个无向图和小偷的起点,小偷每秒可以向相连的点出发,问有没有一个时间点小偷出现在每个点都有可能思路:看了看样例,自己YY一下,写过之后对了,YY的就是如果是二分图则NO,不是二分图则YES,做法是先要判断一下图的连通性,如果不连通小偷怎么也不可能走到所有的点,更别提每个点都有可能了,然后就是简单的二分图的判断,我是这么理解的,如果可以形成二分图,那么对于一个点来说,它在原创 2016-06-15 16:27:19 · 999 阅读 · 0 评论 -
POJ 2594 二分图最小路径覆盖
点击打开链接题意:将所有点都连起来至少需要多少条路径思路:二分图的最小路径覆盖,而最小路径覆==图的顶点数-图的最大匹配,而当初还学习过最小顶点覆盖==最大匹配,而最小顶点覆盖需要连双向边,结果除以2,那是因为1-->2时,点1和点2都已经用过,所以我在连一个相应的一条边,代表这两个点不能在用了,样例详见hdu 1054 第二组。而接下来的求最小路径覆盖的最大匹配我们就只能是单向的,这个为原创 2016-04-21 20:21:34 · 1674 阅读 · 0 评论 -
POJ 2112 二分图
点击打开链接题意:K个机器制造牛奶,一天可以制造M个牛的,每个牛与机器都有距离,下面的矩阵就是距离,问满足所有牛都被生产了牛奶,与机器最远的牛的距离是多少思路:最远的距离最小,好吧一看就知道要用二分,关键是二分的条件,看题目意思是满足所有的牛都被生产过,这就是二分条件,那么如何判断所有牛的条件呢,可以发现是二分匹配的模型,源点连机器,机器连牛,就可以判断牛的条件了,二分的距离判断时就是如果原创 2016-04-21 16:31:22 · 1702 阅读 · 0 评论 -
HDU 4751 二分图判断
点击打开链接题意:将n个人分到两个集合中,要求每个集合中的人都相互认识思路:就是判断是不是二分图,对于一个人来说,如果另一个人和我不是相互认识的,那么他肯定是另一个集合中的人,按照这个分配出现矛盾则不能分配成功#include #include #include #include #include #include #include using namespace std;原创 2016-04-18 15:24:26 · 1277 阅读 · 0 评论 -
HDU 2444 二分图
点击打开链接题意:相互了解的两个人不能在一个集合里,一共两个集合,问能否分配成功,成功的话每个集合出来一个人,他们要相互了解,问最多可以出来多少对思路:第一步是要判断能不能形成二分图,这个我们可以用bfs或dfs都可以,我用的bfs写的,对于我现在访问的点设为1,与它相互了解的则设为2,访问过程中若两个相互了解的人他们的值相等,则不能形成二分图,即两个点都等于1或者2的时候。接下来就是求最原创 2016-04-18 13:18:50 · 761 阅读 · 0 评论 -
HDU 4862 最小费用最大流+路径覆盖
点击打开链接题意:给个n行m列的数列,一个人可以走k次,每次选择一个未走过的点,这个点继续走的话,可以往下走或往右走,当然他可以跳着走,也就是可以跳到下面或右面任意一个位置,但前提是这个点没有走过,初始能量为0,从a,b走到c,d消耗能量是|a-c|+|b-d|-1;问走K次能否将所有点走到,并且每个点只能走一次,,成功的话输出最后可以剩下的最多能量思路:先要处理k次能否成功,想到了最小路原创 2016-04-29 18:33:15 · 5252 阅读 · 0 评论 -
UVA 11383 KM性质
点击打开链接题意:一个n*n的矩阵每个格子里有一个正整数w(i,j)你的任务是确定每行一个整数row(i)每列一个整数col(i),对每个格子都有w(i,j)思路:本题利用KM算法l(x)+l(y)>=w(x,y)的性质直接可以知道得出的顶标之和即为最小的。#include #include #include #include const int INF=0x3f3f3f3f;原创 2016-04-28 20:51:13 · 3994 阅读 · 1 评论 -
ZOJ 3460 二分图+二分
点击打开链接题意:有n个塔攻击,m个敌人的塔被攻击,每个塔攻击前要准备T1秒,注意是秒,发射后下一次攻击就要预热T2分钟,炮弹的攻击速度为v,问如何攻击可以使花费的时间最少思路:网络流的题,知道构图就不叫题了,我们这样看,对于每一个攻击的塔来说,它发动m次攻击后肯定已经将敌人的塔消灭掉了,那么这个塔的m次攻击全部处理出来,那么对于它的第I次攻击攻击塔J,时间就是准备的时间T1*i+预热的时原创 2016-04-26 17:14:55 · 696 阅读 · 0 评论 -
HDU 3729 二分图匹配
点击打开链接题意:每个学生说自己的排名在一个区间,然后老师想知道说真话的学生最多是多少,并将说实话的学生按字典序最大输出思路:简单的匈牙利二分图匹配,因为需要字典序最大,所以在匹配的时候要先满足人的序号大的先匹配#include #include #include #include #include #include using namespace std;typedef l原创 2016-10-11 14:17:58 · 487 阅读 · 0 评论