poj3692Kindergarten
来源:互联网 发布:数据接口开发规范 编辑:程序博客网 时间:2024/06/05 07:49
这是poj-100题纪念一下
题意:有G个女生,M个男生,其中女生之间全部认识,全部男生之间全部认识,部分女生和男生认识。现在老师要玩一个游戏,要求是所有的人都认识。
就是要求最大团。
思路:最大团=原图补图的最大独立集=顶点数-最大匹配数。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=1060;
int n1,n2;
int _map[N][N];
bool vis[N];
int llink[N];
int find(int x) {
int i;
for(i=1; i<=n2; i++) {
if(_map[x][i]&&!vis[i]) {
vis[i]=true;
if(llink[i]==-1||find(llink[i])) {
llink[i]=x;
return true;
}
}
}
return false;
}
int mach() {
int ans=0;
memset(llink,-1,sizeof(llink));
for(int i=1; i<=n1; i++) {
memset(vis,false,sizeof(vis));
if(find(i)) {
ans++;
}
}
return ans;
}
int main() {
int G;
int B;
int rel;
int x,y;
int ncase=1;
while(~scanf("%d%d%d",&G,&B,&rel)) {
if(G==0&&B==0&&rel==0) {
break;
}
memset(_map,1,sizeof(_map));
for(int i=0; i<rel; i++) {
scanf("%d%d",&x,&y);
_map[x][y]=0;
}
n1=G;
n2=B;
int ans=mach();
printf("Case %d: ",ncase++);
printf("%d\n",G+B-ans);
}
return 0;
}
- poj3692Kindergarten
- poj3692Kindergarten 二分匹配之最大独立集
- poj3692Kindergarten poj2584T-Shirt Gumbo多重匹配 拆点 poj3041Asteroids
- RCP开发之绑定Action快捷键
- [C]if (CONDITION)语句中CONDITION的情况
- Java SE 7的程序员二级考试
- Java Servlet的基本教程介绍的Java servlet
- Java SE的Java虚拟机(JVM)
- poj3692Kindergarten
- tokyo tyrant/tokyo cabinet安装配置
- 复制书稿
- uwsgi安装及配置搭档nginx
- Linux串口select发送接收位不对齐问题
- GoPro股价持续高涨 创始人身价越超20亿美元
- IJTS在斯里兰卡开发用于结核病的控制一个国家软件
- Facelets的,以帮助Java开发
- PB对象Event ID说明