二分图
Bahuia
软件工程博士
展开
-
HDU - 3395 二分图
题意:n条鱼,每条鱼有一个价值,然后给出一个交配意愿的图,mp[i][j]表示的是鱼i想和鱼j交配,两条鱼之间只要有一条想交配既可以交配,每条鱼只能和一条鱼交配,所生的孩子的价值是父母价值的异或和,求交配完成后孩子的最大价值和。思路:二分图裸题,但是我用的vector存图的板子,T到姥姥家,后来看别人ac代码改成了邻接矩阵93ms就过了,莫名其妙啊代码:int main() {原创 2017-02-11 10:00:04 · 316 阅读 · 0 评论 -
HDU - 2444 二分图判定 + 最大匹配
题意:简化题意就是判断一个图是否是二分图,如果是求出最大匹配。思路:模板题,但是还wa了好久,有个地方需要注意,在判断是否是二分图的时候,一定要从每个未染色的节点出发判定,不能只任意选一个节点。另外一点是我zz了,在转化成二分图之后左边和右边的节点下标都应该从1开始,而不能用原始图的下标。代码:#include using namespace std;const int原创 2017-01-23 10:05:47 · 383 阅读 · 0 评论 -
HDU - 4160 最小路径覆盖
题意:给n个玩具娃娃,分别给出每一个玩具娃娃的长宽高。如果满足一个娃娃的长宽高都大于另一个娃娃,那么大娃娃可以套在小娃娃的外面。问层层嵌套之后,最终最少还能剩下几个娃娃。思路:最小路径覆盖的模板题,如果左边放n个娃娃,右边放n个娃娃,满足嵌套关系的娃娃之间连边,那么显然这个图是二分图,顶点数 - 最大匹配 = 最小路径覆盖。代码:#include using namespac原创 2017-01-24 15:36:12 · 487 阅读 · 0 评论 -
HDU - 1150 最小顶点覆盖
题意:工厂有两个机器A和B,两个机器分别有n,m种工作模式,现在有k种工作,每种工作可以在A的x[i]模式下完成,也可以在B的y[i]模式下完成,在可以调整任务执行顺序的情况下,如何分配任务可以使得调整机器模式的次数最少。思路:最小顶点覆盖。左边n种模式,右边m种模式,直接按照任务给x,y建边,这样构成的显然是二分图,为了要求出完成k个任务的最小调整次数,就是求出最小的顶点集合,可以覆原创 2017-01-24 16:19:12 · 601 阅读 · 0 评论 -
POJ - 3041 最小顶点覆盖
题意:在n*n的网格中,有k颗小行星。小行星i的位置是(Ri,Ci),现在可以一次摧毁一行或者一列的小行星,问要使得所有小行星毁灭,最少需要多少次。思路:最小顶点覆盖,左边是n个点,代表n行,右边是n个点,代表n列,行星当作边,如果(x,y)上有行星,就将左边节点x和右边节点y连边。那么题目所求也就是要求最小顶点覆盖,来消灭所有的行星(边)。代码:#include #incl原创 2017-01-24 16:39:16 · 490 阅读 · 0 评论 -
HDU - 5727 暴力 + 二分图匹配
题意:给出n个阳珠子和n个阴珠子,排成一个环,要求相邻的两个珠子不能同阴或同阳。另外给出m个关系(u,v),如果阳珠子u和阴珠子v相邻就会褪色一次。问最有情况的组合最少褪色几次。思路:二分图匹配,暴力枚举所有阴珠子的排列,因为是环形所以又(n-1)!种情况,然后针对每一种排列,往相邻的两个阴珠子中插入阳珠子,插入的位置一共有n个,如果一个阳珠子不会和前一个以及后一个阴珠子产生褪色,那么原创 2017-03-18 11:25:06 · 385 阅读 · 0 评论 -
HDU - 3729 二分图最大匹配
题意:n个学生每个学生报一个自己排名的可能区间[l,r],求最多有几个学生说的是真话,并且情况合法,要求输出匹配的结果,多解的情况下要求字典序最大。思路:裸的二分图最大匹配,这题需要注意的一点就是要输出字典序最大的一组匹配结果。所以在进行匹配的过程中要从nl 到1逆序进行,保证下标大的人先匹配。代码:#include using namespace std;const原创 2017-01-23 16:52:28 · 431 阅读 · 0 评论