解决报告 http://blog.csdn.net/juncoder/article/details/38159017 题目传送门 题意: 看到题目我就笑了.., 老师觉得这种两个学生不是一对: 身高相差40以上(年龄都不是距离了,身高又算什么) 不同性别(sad..,就不同意基友存在呀.,,谁的肥皂掉了.,.) 喜欢不一样的歌曲类型(你总不能要求两人整天听小苹果吧,,,,,,你是我的小丫小苹果,,,,,,) 喜欢一样的运动( they are likely to be fans of diff…
题意: 在一个n*n个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘上某些方格设置了障碍,骑士不得进入. 对于给定的n*n个方格的国际象棋棋盘和障碍标志,计算棋盘上最多可以放置多少个骑士,使得它们彼此互不攻击. n<=200,m<=n^2 思路:经典的二分图最大独立集,采用黑白点染色的思想. 如果按照相邻点黑白不同染色,可以发现每次跳到的点必定与现在所在点不同色,二分图最大匹配即可. 每切断一条黑白点之间的边就是少放了一个骑士,用最小割算出最少要切断几条边,总数减去有障碍的再…
题目链接:https://cn.vjudge.net/problem/UVA-12083 题意 学校组织去郊游,选择最多人数,使得任意两个人之间不能谈恋爱 不恋爱条件是高差大于40.同性.喜欢的音乐风格不同.喜欢的运动相同中的任意一个 思路 二分图最大独立集,集合内任两节点间没有边 最大独立集节点数=总结点数-最大匹配 模版题咯 提交过程 CE1 选错语言 CE2 string头文件忘写 AC 代码 #include <cstdio> #include <cstring> #inc…
题目背景 众周所知,在西洋棋中,我们有城堡.骑士.皇后.主教和长脖子鹿. 题目描述 如图所示,西洋棋的“长脖子鹿”,类似于中国象棋的马,但按照“目”字攻击,且没有中国象棋“别马腿”的规则.(因为长脖子鹿没有马腿) 给定一个N * MN∗M,的棋盘,有一些格子禁止放棋子.问棋盘上最多能放多少个不能互相攻击的长脖子鹿. 输入格式 输入的第一行为两个正整数NN,MM,KK.其中KK表示禁止放置长脖子鹿的格子数. 第22~第K+1K+1行每一行为两个整数Xi, YiXi,Yi,表示禁止放置的格子. 输出…
题意:动物园有n只猫和m条狗,现在有p个小孩,他们有的喜欢猫,有的喜欢狗,其中喜欢猫的一定不喜欢狗,喜欢狗的一定不喜欢猫.现在管理员要从动物园中移除一些动物,如果一个小孩喜欢的动物留了下来而不喜欢的动物被移走,这个小孩会很高兴.现在问最多可以让多少个小孩高兴. 此题是求二分图最大独立集. 二分图比较明显,但是难在建图.这个题是找到最多的喜欢猫和喜欢狗而不互相冲突的小孩,这样我们将喜欢动物相互冲突的小孩之间连边,问题就变成了求二分图的最大独立集. 在二分图中,最大独立集=顶点数-最大匹配数. 求解…
Cat VS Dog Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total Submission(s): 4039    Accepted Submission(s): 1458 Problem Description The zoo have N cats and M dogs, today there are P children visiting the zoo,…
我们可以将一个点拆成两个点x,y,那么如果存在一条i->j的路径,我们就连接xi,yj,那么答案就是n-最大匹配数. 因为i->j所以对于i与j只能选一个,那么我们只需要求出来二分图的最大独立集就可以了,二分图的最大独立集=点数-最大匹配. /************************************************************** Problem: 1143 User: BLADEVIL Language: C++ Result: Accepted Time…
传送门 模型 二分图最大独立集,转化为二分图最大匹配,从而用最大流解决. 实现 首先把棋盘黑白染色,使相邻格子颜色不同. 把所有可用的黑色格子看做二分图X集合中顶点,可用的白色格子看做Y集合顶点. 建立附加源S汇T,从S向X集合中每个顶点连接一条容量为1的有向边,从Y集合中每个顶点向T连接一条容量为1的有向边. 从每个可用的黑色格子向骑士一步能攻击到的可用的白色格子连接一条容量为无穷大的有向边. 求出网络最大流,要求的结果就是可用格子的数量减去最大流量. 分析 用网络流的方法解决棋盘上的问题,一…
https://www.luogu.org/problemnew/show/P5030 写的第一道黑色题,图建对了. 隐约觉得互相攻击要连边,规定从奇数行流向偶数行. 二分图最大独立集=二分图顶点总数-二分图最大匹配 因为把最大匹配d从顶点总数n中去掉,有n-2d个点. 从被去掉的点中,每个匹配重新加一个回来,加了d个. 所求为n-d. 估计顶点上限,40000+2 然后每个顶点最多连出8条边(其实只有奇数行连出) 每个顶点要么连源要么连汇 留出反向边的位置. #include<bits/std…
问题描述 一个 \(N \times N\) 围棋棋盘,任意两个白子不相邻,你要加入若干个黑子并提出白子,最大化空格数目. submit 题解 显然最终棋盘的局面不能够一个白子和它周围的空格都是空的,只能属于 「空」 或 「不空」 . 所以是个二分图. 二分图最大独立集=总点数-二分图最大匹配 \(\mathrm{Code}\) #include<bits/stdc++.h> using namespace std; //#define file //#define local const i…