二分图匹配
lemondinosaur
转圈圈 不停转圈圈 然后摔倒
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
#二分图匹配,floyd,匈牙利算法#POJ 2594 Treasure Exploration
题目给出一个无向图,问最少需要多少条可重合的路径覆盖所有点分析先跑一遍floyd传递闭包,把题目转换成最小不可相交路径覆盖,然后再跑二分图,最小不可相交路径覆盖=总点数-最大匹配即可代码#include <cstdio>#include <cctype>#include <cstring>#define rr registerusing n...原创 2019-12-13 22:14:42 · 290 阅读 · 0 评论 -
#网络流,最大流,dinic,二分图最大独立集#洛谷 5030 长脖子鹿放置
题目分析那么这道题显然是一个求二分图最大独立集的题目,但是怎样把点分成两份更优呢,可以发现按照行的奇偶性挺不错的,然后最大独立集=总点数-最大流,所以跑一遍网络流dinic就可以了代码#include <cstdio>#include <cctype>#include <queue>#define rr registerusing names...原创 2019-04-12 21:37:45 · 227 阅读 · 0 评论 -
#匈牙利算法#洛谷 1129 codevs 1433 矩阵游戏
题目一个n×nn×nn\times n黑白方阵,每次可以对该矩阵进行两种操作: 行交换操作:选择矩阵的任意两行,交换这两行(即交换对应格子的颜色) 列交换操作:选择矩阵的任意两列,交换这两列(即交换对应格子的颜色) 游戏的目标,即通过若干次操作,使得方阵的主对角线(左上角到右下角的连线)上的格子均为黑色。 问是否有解分析可以发现无论怎么交换,二分图匹配的答案是不变的,所...原创 2018-08-31 21:10:31 · 310 阅读 · 0 评论 -
#匈牙利算法#洛谷 1640 连续攻击游戏
题目有nnn种装备,每种装备有两种属性,在使用一种装备时只能使用一种属性,必须属性为从1到2、3、4……开始攻击,问最多可以连续攻击到什么时候分析这个问题其实是在求属性和装备编号之间的最大匹配,然而,看起来比较难的题目数据比较水,匈牙利算法卡内存就好了代码#include <cstdio>#include <cstring>struct ...原创 2018-08-31 22:33:29 · 318 阅读 · 0 评论 -
2018.12.30【NOIP提高组】模拟A组
前言去上海了,所以没有比赛,不过还是看了题目JZOJ 5353 村通网题目一座建筑有网,当且仅当满足以下至少一个条件:1、直接连网,花费为AAA。2、连接有网的建筑,花费为BBB×两者曼哈顿距离。有NNN座建筑,知道所有建筑的坐标,问最少要多少费用才能达到目的。分析那么这道题就是一道比较裸的最小生成树,由于任意点间都能连边,所以说kruskal没有什么大优势,在此用的是裸的p...原创 2019-01-05 14:40:47 · 211 阅读 · 0 评论 -
#网络流,最大流,dinic#洛谷 3355 骑士共存问题
题目在棋盘内放入尽量多的骑士,使他们(马步)互不攻击。分析匈牙利算法 但是这次要用网络流最大流,dinic。代码#include <cstdio>#include <cstring>#include <algorithm>#include <cctype>#include <queue>原创 2018-06-22 10:50:26 · 306 阅读 · 0 评论 -
#搜索,剪枝,网络流,最大匹配#ssl 2123 民生问题
后两个是吸引你点进来的,根本不存在题目分析其实是正解应该是网络流的题目,这里用深搜+剪枝实现1.深搜时找到比当前最优解不优的答案直接退出2.预处理可以不需要的专家(有专家完全替代他)3.对于问题只有一个专家能解决的,该专家必选,该专家的会的其他问题可以标记不需要代码#include <cstdio>#define rr registerusing namesp...原创 2018-12-20 16:34:04 · 211 阅读 · 0 评论 -
#匈牙利算法,二分图匹配#JZOJ 1610 导弹
题目大意一共有K个城市,城市间有两两相连的道路,通过道路需要一定时间。求N个城市分别到另外M个城市最短路中的最大值的最小答案分析那么这道题可以发现先要预处理最短路,二分答案,然后对于不超过这个答案的边把它们连起来,那么再用二分图匹配判断是否m个城市都能配对上代码#include <cstdio>#include <cctype>#include <c...原创 2019-01-24 16:56:26 · 200 阅读 · 0 评论 -
#网络流,最大流,dinic#洛谷 2756 ssl 2601 飞行员配对问题
题目二分图匹配,输出方案。分析新的操(chao)作(zhuo)。 网络流,虽说匈牙利也可以用,但是要知道效率低。#include &lt;cstdio&gt;#include &lt;queue&gt;using namespace std;queue&lt;int&gt;q;struct node{int y,next,f;}e[10201];原创 2018-06-21 11:22:13 · 276 阅读 · 0 评论 -
SSL 1333 地鼠的困境#匈牙利算法#
题目求最少有多少只老鼠被老鹰抓。分析使用匈牙利算法,求出最大匹配,用n减去它就是答案。代码#include &lt;cstdio&gt;#include &lt;cmath&gt;#include &lt;cstring&gt;#define fill(a,b) memset(a,b,sizeof(a))using n原创 2018-04-07 15:12:02 · 210 阅读 · 0 评论 -
SSL 1344 Knights#匈牙利算法#
题目求在一个棋盘上放置尽可能多的马,并使他们不互相攻击。分析可以把这个转化成二分图,求最大独立集。 最大独立集=点的数量-最大匹配。 用匈牙利算法,求出最大匹配就可以了。 当然构图是很费时间的。 在1的位置互不影响,所以可以这样划分,建立二分图。代码(邻接表,6192ms6192ms6192ms)#include &amp;lt;cstdio&amp;gt;#...原创 2018-04-13 20:15:24 · 253 阅读 · 0 评论 -
poj 3041 SSL 1341 Asteroids#匈牙利算法#
题目大意有m个敌人,一枪只能打掉一行或一列的敌人,求至少要打多少枪。分析我们知道如果想打一个敌人,那么打该行或者该列,所以就想到了最小点覆盖问题。 给定一个二分图,求最小的点数,使得每一条边都至少与一个顶点相邻。 求最小点覆盖问题就是求最大匹配。(匈牙利算法走起)代码#include &amp;lt;cstdio&amp;gt;#include &amp;lt;cctype&a原创 2018-04-13 21:23:18 · 219 阅读 · 0 评论 -
VIJOS 1204 CoVH之柯南开锁#匈牙利算法#
题目锁是由M*N个格子组成, 其中某些格子凸起(灰色的格子). 每一次操作可以把某一行或某一列的格子给按下去,求至少要按多少次。分析求最小点覆盖问题,转化为求最大匹配,用匈牙利算法。代码#include &amp;amp;lt;cstdio&amp;amp;gt;#include &amp;amp;lt;cstring&amp;amp;gt;using namespace原创 2018-04-13 21:39:13 · 332 阅读 · 0 评论 -
SSL 1340 poj 1422 Air Raid 最小路径覆盖#匈牙利算法#
题目定义: 一个不含圈的有向图G中,G的一个路径覆盖是一个其结点不相交的路径集合P,图中的每一个结点仅包含于P中的某一条路径。路径可以从任意结点开始和结束,且长度也为任意值,包括0。请你求任意一个不含圈的有向图G的最小路径覆盖数。分析通过一系列的思考,可以发现 最小路径覆盖数=G的顶点数-最小路径覆盖边数, 而最小路径覆盖边数=最大匹配 匈牙利算法代码#i...原创 2018-04-14 08:24:22 · 265 阅读 · 2 评论 -
SSL 1082 2317 拦截导弹#匈牙利算法#
题目某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统,虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。 分析对于第一个问题,用动态规划 状态转移方程: f[i]=max(f[i],f[j]+1)(i&amp;gt;j且a[i]&amp;gt;=a[j])f[i]=max(f...原创 2018-04-14 08:29:35 · 243 阅读 · 0 评论 -
poj 2446 Chessboard#匈牙利算法#
题目求2*1的骨牌是否能覆盖棋盘。分析首先,如果抠掉后剩下的块数是奇数,就不会成立。 接着,如果奇数点和偶数点数量不同,也不会成立(留给读者思考) 特判结束后,二分图走起。代码#include &lt;cstdio&gt;#include &lt;cctype&gt;#include &lt;cstring&gt;u原创 2018-04-17 20:20:03 · 303 阅读 · 0 评论 -
zoj 1654 Place the Robots#匈牙利算法#
题目放置最多的机器人,使它们不相互攻击。分析首先我们可以想到的,是最大独立集(图1)。 ——(图1)—— 只要判断这些空地是否受到影响就可以了。 But 这种效率太低了,所以我们要考虑如何优化图。 (图2)行连通块 (图3)列连通块 如果这些连通块连在一起,那么必然不能放。代码#include &lt;iostream&gt;using n...原创 2018-04-17 21:17:00 · 252 阅读 · 0 评论 -
SSL 1335 最佳派对#匈牙利算法#
题目求最大匹配分析用匈牙利算法 (1)置M为空 (2)找出一条增广路径P,通过取反操作获得更大的匹配M’代替M (3)重复(2)操作直到找不出增广路径为止代码#include &lt;cstdio&gt;#include &lt;cctype&gt;#include &lt;cstring&gt;using n原创 2018-04-03 17:16:30 · 850 阅读 · 0 评论
分享