二分图
柠檬不酸只是萌
遇 见 最 美 的 自 己 。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU 4751 — Divide Groups
原题:http://acm.hdu.edu.cn/showproblem.php?pid=4751 题意: 有n个人,下面n行; 表示第i个人认识的人,以0结束; 问能不能分成两个组,使得组内任意两个人相互认识; 思路: 用0和1表示两个组; b[i]表示第i个人所属的组别; 如果两个人不认识,就是在不同的组; #includ原创 2015-05-10 21:21:54 · 494 阅读 · 0 评论 -
POJ 2594 — Treasure Exploration 最小路径覆盖
原题:http://poj.org/problem?id=2594 题意: 有n个点,m条有向边; 问最少用多少条路径可以覆盖所有的点; 路径可以合并,即如果有很多的点在一条单向的路径上,那么就可以用这一条路径覆盖这些点; 另外,一个单独的点也算作一条路径; 思路: 用floyd合并路径;再求最大匹配数; 最小路径覆盖 = 顶点数-最大匹配数; #incl原创 2015-07-27 22:50:54 · 531 阅读 · 0 评论 -
HDU 2819 — Swap 二分匹配
原题:http://acm.hdu.edu.cn/showproblem.php?pid=2819 题意: 给定一个n*n的01矩阵; 通过行或列的变换使得主对角线上都为1; 问变换次数,以及具体的变换操作; #include #include #include #include using namespace std; const int maxn = 110; in原创 2015-07-27 17:08:54 · 437 阅读 · 0 评论 -
POJ 3020 — Antenna Placement 最小边覆盖
原题:http://poj.org/problem?id=3020 题意: 给出一个n*m的矩阵, ‘ o ’ 表示空地,' * ' 表示城市; 现要这些城市都覆盖无线网,在一些城市建基站,一个基站可以至多覆盖相邻的两个城市(这里的两个城市指建了基站的城市和相邻的一个城市); 问最少需要建立几个基站; 思路: 可以想到是最小路径覆盖; 此处构建二分图并不是简单的把坐标分为X集原创 2015-07-27 21:34:25 · 587 阅读 · 0 评论 -
HDU 4160 — Dolls 最小路径覆盖
原题:http://acm.hdu.edu.cn/showproblem.php?pid=4160 题意: 有n个箱子,下面n行给出每个箱子的长、宽、高; 大箱子可以嵌套小箱子(要求长宽高均小于外面的箱子,且长宽高一一对应,即长对应长); 问露在外面箱子有几个; 思路: 1的体积小于2,2的体积小于3,那么3套2、2套1,就只有一个箱子3露在外面,可以想到是最小路径覆盖; 最原创 2015-07-29 20:50:38 · 514 阅读 · 0 评论 -
HDU 2458 — Kindergarten 最大团
原题:http://acm.hdu.edu.cn/showproblem.php?pid=2458 题意: 给出女孩人数、男孩人数,以及m条关系; 下面m行,u — v,表示女孩u和男孩v相互认识; 并且,男孩们之间相互认识,女孩们之间也相互认识; 问最多有多少个人,他们相互之间都认识; 思路: 显然是求最大团; 最大团 = 补图的最大独立集; 最大独立集 = 顶点数 -原创 2015-07-29 21:06:02 · 536 阅读 · 0 评论 -
HDU 4185 — Oil Skimming 二分匹配
原题:http://acm.hdu.edu.cn/showproblem.php?pid=4185 题意: 问“##”相邻的两个#,最多有几对; 思路: 把每个#按顺序标号,二分图的X、Y集就是#的标号数; 如果有相邻的#,就将其相连; 最后求最大匹配数,因为相邻的#有重复,所以最后的答案是sum/2; #include #include #include #原创 2015-07-31 17:01:31 · 485 阅读 · 0 评论 -
HDU 3829 — Cat VS Dog 最大独立集
原题:http://acm.hdu.edu.cn/showproblem.php?pid=3829 题意: 每个小盆友都有自己喜欢的动物和不喜欢的动物,对于每一个小盆友来说,如果动物园里有自己喜欢的动物且没有不喜欢的动物,那他就是幸福的; 现在要在动物园里去掉一些动物,问最多可以让几个小盆友幸福; 第一行给出n、m、p,分别表示猫的数量,狗的数量,小盆友的人数; 下面p行,给出每个人喜欢原创 2015-07-31 21:21:20 · 770 阅读 · 0 评论 -
HDU 4751 — Divide Groups 交叉染色判二分图
原题:http://acm.hdu.edu.cn/showproblem.php?pid=4751 题意: 有n个人; 下面n行,表示第i个人所认识的人,以0结束; 问能否分成两个集合,使得每个集合均为完全图; 思路: 也就是说不认识的人一定不在一个集合里; 用交叉染色法来判断即可; #include #include #include #include usin原创 2015-07-31 16:35:01 · 513 阅读 · 0 评论 -
HDU 1281 — 棋盘游戏 最大匹配
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1281 题意: 求的三个数 — — 1、cas数;2、特殊边的数量(所谓特殊边即不连该条边会使得最大匹配数减少);3、最大匹配数; #include #include const int maxn = 110; int n, m, k; int cas = 0; bool link[m原创 2015-07-26 19:32:51 · 394 阅读 · 0 评论 -
HDU 3488 — Tour 费用流/KM算法
原题:http://acm.hdu.edu.cn/showproblem.php?pid=3488 题意: 有n个点,m条有向带权边; 求一些环,使得每个点属于且仅属于一个环; 问环边的权值和的最小值; 思路: 拆点,建图,跑一个费用流; 源点到节点,流量为1,花费为0(s, i, 0, 1); 节点到节点,流量为1, 花费为边权值(u, v+n, cos, 1); 节点原创 2015-05-29 22:32:43 · 616 阅读 · 0 评论 -
HDU 2444 — The Accomodation of Students 二分图+最大匹配
原题:http://acm.hdu.edu.cn/showproblem.php?pid=2444 题意: 有n个人,m对人相互认识; 问能否分成两个组,组内任意两个人之间不认识; 若不能,则输出No; 若能,则相互认识的两个人一间房,求最多需要几间房; #include #include #include #include #include using namesp原创 2015-05-11 14:58:23 · 462 阅读 · 0 评论 -
HDU 3468 — Treasure Hunting BFS+二分匹配
原题:http://acm.hdu.edu.cn/showproblem.php?pid=3468 题意: 给定一个n*m的地图; .表示空地,#表示墙,*表示黄金; 从A走到Z或者从a走到z; 要求每次都按最短路走到下一个字母,且走的字母是连续的; 若走不到下一个字母或者地图上不存在下一个字母就输出-1; 每次走到下一个字母的途中可以拿一个黄金,问最多可以得到多少个黄金;原创 2015-05-11 22:32:27 · 565 阅读 · 0 评论 -
HDU 1150 — Machine Schedule 最小顶点覆盖
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1150 题意: 有两台机器,k个任务,每台机器有n种状态,从0到n-1,初始状态都为0; 接下来k行,(i,x,y)表示任务i 既可以在A机器的x状态下完成,也可以在B机器的y状态下完成; 问最少要转换几次状态; 思路: 最小顶点覆盖 = 最大匹配 将能完成同一任务的两个状态建立关系,原创 2015-05-12 21:05:56 · 561 阅读 · 0 评论 -
HDU 1498 — 50 years, 50 colors
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1498 题意: 有一个n*n的矩阵,每个位置用一个数字表示气球的颜色; 每次选择一行或一列爆破颜色相同的气球,若在k次内不能全部爆破则输出该种颜色; 若全部都能爆破则输出--1; 思路: 对于颜色相同的气球(i, j),以i为x集, j为y集,建边; 算最大匹配数,若>k则不能全部爆破原创 2015-05-13 20:33:41 · 640 阅读 · 0 评论 -
HDU 1068 — Girls and Boys 最大独立集
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1068 题意: 给定一些男女生之间的暧昧关系,求一个最大的集合,使得集合中相互之间没有暧昧关系; 思路: 就是求最大独立集,最大独立集 = 顶点数 - 最大匹配; #include #include #include #include #include using nam原创 2015-05-15 14:41:12 · 469 阅读 · 0 评论 -
HDU 3729 — I'm Telling the Truth
原题:http://acm.hdu.edu.cn/showproblem.php?pid=3729 题意: 给出n个学生说的自己的考试排名范围; 问最多有几个人说真话,并且输出字典序最大的一种(所以匹配时从n-1开始); 思路: 将学生作为X集,整个数轴作为y集,映射就是点和对应区间的每一个数; 然后反向求最大匹配; #include #include原创 2015-05-15 21:29:19 · 522 阅读 · 0 评论 -
HDU 1507 — Uncle Tom's Inherited Land*
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1507 题意: 给定一个n*m的矩阵,以及k个点(表示坏点,无法铺设); 接下来K行给出这些点的坐标; 问最多可以铺设几个1*2的格子,并输出匹配方式; 思路: 将能组成1*2方格的两个坐标相连,然后求最大匹配; 二维坐标均用一维表示; #include #inclu原创 2015-05-14 21:58:06 · 505 阅读 · 0 评论 -
HDU 1083 — Courses
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1083 题意: 有p个课程n个学生; 学生可以自由选择课程,但一个学生只能代表一个课程; 接下来p行,第i行表示第i门课,第一个数m为选该门课的人数,然后列出这m个人; 问是否每门课都有学生代表; 思路: 就是求最大匹配,若匹配数为p,则YES,否则NO; #incl原创 2015-05-17 10:31:22 · 565 阅读 · 0 评论 -
CSU 1531 — Jewelry Exhibition
原题:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1531 题意: 给定一个n*m的矩阵; 矩阵里面有k个点,下面k行给出坐标; 有一把刷子,每次可以刷单位长度的一行或者一列; 问至少刷几次可以刷完所有的点; 思路: 将所有的点映射到格子的左下角,即只取坐标的整数部分; 再用最大匹配做; #include #i原创 2015-07-24 14:37:48 · 575 阅读 · 0 评论
分享