poj3692_Kindergarten
这题目大意是:男孩互相认识,女孩互相认识,一部分男女之间认识,老师要选一部分人,要求这部分人必须都相互认识。
这是一个二部图,先求出补图,在补图中G‘左右两点有连线说明在G中两者不认识,反之成立。
所以就是在补图中怎样来构造左右两部分间互相之间没有连线的图。============> 在G’中求出最大匹配,用匈牙利算法,然后去掉这些匹配中每个匹配的一个点让连线断掉,就找到了最大独立点集。说到这里,大家就知道了,求最大团就是等价于求补图中的最大独立点集。
代码如下:
#include <stdio.h>
#include <string.h>
int n1,n2,m,ans;
int result[]; //记录V2中的点匹配的点的编号
bool state []; //记录V2中的每个点是否被搜索过
bool data[][];//邻接矩阵 true代表有边相连
void init() {
int t1,t2;
for(int i=;i<=;++i)
for(int j=;j<=;++j)
data[i][j]=;
memset(result,,sizeof(result));
ans = ;
for (int i = ; i <= m; i++) {
scanf("%d%d",&t1,&t2);
data[t1][t2] = ;
}
return;
}
bool find(int a) {
for (int i = ; i <= n2; i++) {
if (data[a][i] == && !state[i]) { //如果节点i与a相邻并且未被查找过
state[i] = true; //标记i为已查找过
if (result[i] == //如果i未在前一个匹配M中
|| find(result[i])) { //i在匹配M中,但是从与i相邻的节点出发可以有增广路
result[i] = a; //记录查找成功记录
return true; //返回查找成功
}
}
}
return false;
}
int main() {
int CASE=;
while(~scanf("%d%d%d",&n1,&n2,&m)&&(n1||n2||m)){
init();
for (int i = ; i <= n1; i++) {
memset(state,,sizeof(state)); //清空上次搜索时的标记
if (find(i)) ans++; //从节点i尝试扩展
}
printf("Case %d: %d\n",++CASE,n1+n2-ans);
}
return ;
}
poj3692_Kindergarten的更多相关文章
随机推荐
- laravel5.2 移植到新服务器上除了“/”路由 ,其它路由对应的页面显示报404错误(Object not found!)———新装的LAMP没有加载Rewrite模块
Laravel 框架通过 public/.htaccess 文件来让网址不需要 index.php.如果你的服务器是使用 Apache,请确认是否有开启 mod_rewrite 模块.如果 Larav ...
- php判断用户客户端是否是微信内置客户端
微信内置浏览器的渲染方式在某些方面和其他浏览器不同,所以有时候需要做一些兼容性处理,那么就需要判断是否是微信内置浏览器.最好的判断方式就是通过 User Agent 来判断. 工具/原料 php ...
- WebView用法
在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件. 什么是webkit WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对 ...
- mac打开.caj格式文件
以为用mac后使用会变得更方便些,写毕设时终于派上用场,可惜啊,mac竟然打不开.caj文件,这意味着什么?相信所有在做毕设的小伙伴们都能懂其中的凄凉.特别是硕士或博士的论文,你得从知网上下上百篇的文 ...
- jenkins参数化构建过程
http://www.cnblogs.com/meitian/p/5492457.html 1,首先增加Jenkisn插件 https://wiki.jenkins-ci.org/display/JE ...
- java获取对应字节数的内容
每个英文字符占一字节 每个汉字当编码不同时字节数不同,utf-8中一个汉语字符占位3字节 示例: 获取任意一个字符串的前四个字节. Scanner sc = new Scanner(System.in ...
- [Other] 自定义MIME类型支持FLV的相关设置
刚测试知道为何服务器无法播放flv的原因,特此记录而已. 网络空间支持FLV的相关设置,就是自定义一个MIME类型,一般虚拟主机管理里面都有这个选项 自定义MIME类型 扩展名: .flv MIME类 ...
- 无法重新组织表 "ty_wf_ex_local_process_info" 的索引 "idx_prc_act_id" (分区 1),因为已禁用页级锁定。
无法重新组织表 "ty_wf_ex_local_process_info" 的索引 "idx_prc_act_id" (分区 1),因为已禁用页级锁定. ALT ...
- 立体匹配:关于理解middlebury提供的立体匹配代码后的精减
Middlebury立体匹配源码总结 优化方法 图像可否预处理 代价计算可否采用BT方式 可选代价计算方法 可否代价聚合 可否MinFilter优化原始代价 WTA-Box 可以 可以 AD/SD 可 ...
- java中整数类型(short int long)的存储方式
在java中的整数类型有四种,分别是 byte short int long 其中byte只有一个字节 0或1,在此不详细讲解. 其他的三种类型如下: 1.基本类型:short 二进制位数:16包装 ...