二分图/匹配
ssllyr
锦瑟无端五十弦,一弦一柱思华年。
展开
-
【hdu2819】Swap【二分图匹配】
说:既然男女能够做匹配,那么花和草也能,行和列也能。以后看到这种黑白多少往二分图想想。。。同一行的两个1,不论如何行交换或列交换,都依然处于同一行。要让主对角线全是1,首先1的总个数要>=n,其次所有行都要出现1,所有列都要出现1。如果某个格子ij是1,则从结点i连边到结点j,构造二分图。求二分图最大匹配,检查最大匹配是否等于n,如果是,输出“Yes”,否则输出“No”。本题用二分图最大匹配的正确性:任意位置的“1”都是可以移动到主对角线上任意位置的。原创 2023-08-19 20:13:21 · 51 阅读 · 0 评论 -
【poj1422】Air Raid【二分图匹配】
二分图原创 2023-08-09 12:02:02 · 42 阅读 · 0 评论 -
【poj2446】Chessboard【二分图】
二分图原创 2023-08-09 11:06:58 · 32 阅读 · 0 评论 -
【HDU1054】 Strategic Game【树形DP】【二分图匹配】
DP原创 2023-08-04 19:39:54 · 36 阅读 · 0 评论 -
【poj1469】courses【二分图匹配】
二分图原创 2023-08-04 08:22:45 · 30 阅读 · 0 评论 -
【hdu2444】The Accomodation of Students【二分图匹配】
二分图原创 2023-08-04 08:15:46 · 42 阅读 · 0 评论 -
【gmoj3423】【7.12提高B组T4】Vani和Cl2捉迷藏【二分图最大匹配】
分析题意就是选到的点都不能直接互相到达。首先我们要求这个DAG的最长反链长度。反链的定义是:“反链(antichain)是一个偏序集S的子集,其中任意两个元素不可比较”根据dilworth定理,得出结论:最小链覆盖=最长反链长度。最小链覆盖就是n-最大匹配数ans。做floyed 缩点,变为不可相交。上代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstrin..原创 2021-07-13 15:27:07 · 72 阅读 · 0 评论 -
【ssl1082】拦截导弹【最长不上升子序列】【最小路径覆盖】
Description某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。Sample Input300 250 275 252 2原创 2020-08-22 15:22:35 · 132 阅读 · 0 评论 -
【ssl1340】最小路径覆盖【最小路径覆盖】【最大匹配】
Description定义: 一个不含圈的有向图G中,G的一个路径覆盖是一个其结点不相交的路径集合P,图中的每一个结点仅包含于P中的某一条路径。路径可以从任意结点开始和结束,且长度也为任意值,包括0。请你求任意一个不含圈的有向图G的最小路径覆盖数。提示:最小路径覆盖数=G的定点数-最小路径覆盖中的边数最小路径覆盖数=原图G的顶点数-二分图的最大匹配数Inputt 表示有t组数据;n 表示n个顶点(n<=120);m 表示有m条边;接下来m行,每行有两个数 i,j表示一条有向边。Outpu原创 2020-08-22 15:05:37 · 111 阅读 · 0 评论 -
【ssl1333】地鼠的困境【最大匹配】【匈牙利算法】
Description地鼠家族面临着一个新的威胁——猎食者。 地鼠家族一共有N个地鼠和M个鼠洞,每个都位于不同的(x, y)坐标中。假如有地鼠在发觉危险以后s秒内都没有回到鼠洞里的话,就可能成为老鹰的食物。当然了,一个鼠洞只能拯救一只地鼠的命运,所有地鼠都以相等的速度v移动。地鼠家族需要设计一种策略,使得老鹰来时,易受攻击的地鼠数量最少。Input本题有多组数据。第1行为测试数据组数T(T<=50)。对于每组数据,第一行4个整数n, m, s和v(n, m <= 100)。以后n行为原创 2020-08-22 14:45:49 · 714 阅读 · 0 评论 -
【ssl1344】Knight【二分图匹配】【最大独立集】
Description一张大小为n的国际象棋棋盘,上面有一些格子被拿走了,棋盘规模n不超过200。马的攻击方向如下图,其中S处为马位置,标有X的点为该马的攻击点。你的任务是确定在这个棋盘上放置尽可能多的马,并使他们不互相攻击。Input输入n,m,表示棋盘有n行,m个点在棋盘中被拿走了。下面输入x,y为被拿走的点的坐标Output输出能放置的最多的马的数量,使它们不互相攻击Sample Input3 21 13 3Sample Output5分析首先为什么是求最大独立集?原创 2020-08-22 08:07:19 · 99 阅读 · 0 评论 -
【ssl1341】Asteroids【二分图】【匈牙利算法】【最大匹配问题】
DescriptionBessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N grid (1 <= N <= 500). The grid contains K asteroids (1 <= K <= 10,000), which are conveniently located at the lattice points of the g原创 2020-08-21 20:27:19 · 114 阅读 · 0 评论 -
【ssl1338】人员分配【二分图】【最大匹配(模板)】【匈牙利算法】
Description设有M个工人x1, x2, …, xm,和N项工作y1, y2, …, yn,规定每个工人至多做一项工作,而每项工作至多分配一名工人去做。由于种种原因,每个工人只能胜任其中的一项或几项工作。问应怎样分配才能使尽可能多的工人分配到他胜任的工作。这个问题称为人员分配问题。Input第一行两个整数m,n分别为工人数和工作数。接下来一个整数s,为二分图的边数。接下来s行,每行两个数ai,bi表示第ai个工人能胜任第bi份工作Output一个整数,表示最多能让多少个工人派到自己的胜原创 2020-08-21 19:21:52 · 408 阅读 · 0 评论