题目大意:
有N个学生,他们之间的某些人比较暧昧,只有认识的人能组成一个集合。问:最多能组成
多少个集合,使得这几个集合之间的学生都没有任何关系。
思路:
从N个图中选出M个点,使得这M个点两两之间没有边,求最大的M是多少。二分图最大独立
集问题。本来应该以男生、女生各一边建二分图求最大独立集,但是这里只有N个点,没有告
诉男生、女生的编号。那么以N个学生为一边、再以N个学生为另一边。将相互联系的人之间
建边。然后求最大匹配数。因为如果u和v有联系的话,边(u,v)和(v,u)都加入了二分图中,
被重复计...
分类:
其他好文 时间:
2015-04-01 23:52:08
阅读次数:
166
题目大意:
幼儿园里边有N个男孩和M个女孩,所有男生之间都互相认识,所有女生之间也都相互认识。
还有k对关系,表示某个男孩和某个女孩认识。现在要选择一些学生组成一个集合,使得这个
集合中所有的人都认识,求这个集合中最多能有多少人。
思路:
建立二分图,图的一边为男生,另一边为女生。不能直接选取认识关系来建边,应该选取不认
识的人建边,也就是认识关系的补集作为边集。这样匹配的两个人都是不认识的,求出来的最
大匹配数就是最多有多少对人相互不认识。而最大独立集 = N + M - 最大匹配数,就求出了最
多能能...
分类:
其他好文 时间:
2015-04-01 23:51:30
阅读次数:
216
这题大白书例题 :Frank 是一个思想有些保守的高中老师,有一次,他需要带一些学生出去旅行,但又怕其中一些学生在旅途中萌生爱意。为了降低这种事情的发生概率,他决定确保带出去的任意两个学生至少要满足下面4条中的一条 1 身高相差大于40 2 性别相同 3 最喜欢的音乐属于不同的类型 4 ...
分类:
其他好文 时间:
2015-03-31 23:54:16
阅读次数:
189
poj 3692 二分图最大匹配
题意:
已知班级有g个女孩和b个男孩,所有女生之间都相互认识,所有男生之间也相互认识,给出m对关系表示哪个女孩与哪个男孩认识。现在要选择一些学生来组成一个团,使得里面所有人都认识,求此团最大人数。
限制:
1
思路:
求最大团。
最大团=|V|-最大独立集
最大独立集=|V|-最大匹配
最大团=补图的最大独立集
由题意可得,互...
分类:
其他好文 时间:
2015-03-31 09:17:37
阅读次数:
200
网络流中的一些基本概念
最大流:
最小割:
最大匹配:
最小顶点覆盖:求一个最小的点集S,使得G中任意边都有至少一个端点属于S。
最大独立集:求一个最大的点集,里面的点不存在任何的边相连。
最大团:求一个最大的点集,里面的点两两相连。
最小边覆盖:理解为边覆盖点,用最少的边把图中的点全部覆盖。
最小路径覆盖:用最少的路径把图中的所有点覆盖。
规则:
最大流=最小割
最...
分类:
其他好文 时间:
2015-03-30 21:09:27
阅读次数:
188
基础知识:最大独立集: 顶点集V中取 K个顶点,其两两间无连接。最大团: 顶点集V中取 K个顶点,其两两间有边连接。最大独立集 = 补图的最大团。 (补图 = 完全图 - 原图)挺详细的解释:http://www.cnblogs.com/yefeng1627/archive/2013/03/31/2...
分类:
其他好文 时间:
2015-03-30 18:02:37
阅读次数:
291
大意:很多领导,能形成一个树形关系网,这些领导参加一个party,每个人都有一个能使party活跃的值,但是每个人又不喜欢跟自己的直接领导同时参加party。为使party气氛最好,求最好气氛值。
思路:
法一:对子树的根按两种决策找到状态方程,然后用刷表法
法二:细化状态,dp[i][0],dp[i][1] 分别表示不选i时的最大集和选了i时的最大集
法二的方法更实用,状态细化后更便于找...
分类:
其他好文 时间:
2015-03-29 09:28:17
阅读次数:
146
题意:一城堡的所有的道路形成一个n个节点的树,如果在一个节点上放上一个士兵,那么和这个节点相连的边就会被看守住,
问把所有边看守住最少需要放多少士兵。
思路:和最大独立集的思路差不多,转移方程差不多,用0,1表示子树的根放不放士兵
dp[root][0] += dp[son][1];
dp[root][1] += min(dp[son][1],dp[son][...
分类:
其他好文 时间:
2015-03-29 09:25:59
阅读次数:
133
//最小边覆盖
//最小边覆盖=最大独立集=n-最大匹配
//这个是在原图是二分图上进行的
//由于此题为无向图
//最小边覆盖=最大独立集=n-最大匹配/2;
#include
#include
#include
using namespace std;
const int maxn = 45*15;
int line[maxn][maxn];
int match[maxn...
分类:
其他好文 时间:
2015-03-21 23:00:49
阅读次数:
290
题意:
给定一个树,选择若干点,使得选择的结点中任一结点不会和它的子结点同时选择,求能选结点最大数量。同时判断方案数是否为一。
思路:树的最大独立集,用树形dp,dfs一遍找每个结点的父亲,是为了从下向上刷每个结点儿子的最大独立集和and每个结点孙子的最大独立集和的表
判断方案数是否唯一同样在树形dp的同时递推判断即可
算法复杂度可以是线性
//248K 0MS C+...
分类:
其他好文 时间:
2015-03-14 13:57:57
阅读次数:
1425