poj3692 补图二分图,最大团
来源:互联网 发布:淘宝教育平台 编辑:程序博客网 时间:2024/04/28 23:17
我们求一个图的最大团 = 求补图的最大独立集
而我们这道题很特殊!! 它男女边所有点都是连接的,他的补图就是都不连接,也就是二分图!!!
我们也就是求二分图的最大独立集。
最大独立集点数 = N - 最大匹配数。
所以我们直接建立补图,匈牙利算法求最大匹配。一减就行了
- #include<iostream>
- #include<stdio.h>
- #include<string.h>
- using namespace std;
- #define maxm 405
- int n,m,s;
- int map[maxm][maxm],vis[maxm],link[maxm];//map存图
- int dfs(int t)
- {
- for(int i=1;i<=m;i++)
- {
- if(vis[i]==0&&map[t][i])
- {
- vis[i]=1;
- if(link[i]==-1||dfs(link[i]))
- {
- link[i]=t;
- return 1;
- }
- }
- }
- return 0;
- }
- int MaxMatch()
- {
- int num=0;
- memset(link,-1,sizeof(link));
- for(int i=1;i<=n;i++)
- {
- memset(vis,0,sizeof(vis));
- if(dfs(i))
- num++;
- }
- return num;
- }
- int main()
- {
- int a,b,cas=1;
- while(cin>>n>>m>>s)
- {
- if(n==0&&m==0&&s==0)break;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- map[i][j]=1;
- for(int i=0; i<s; i++)
- {
- cin>>a>>b;
- map[a][b]=0;
- }
- cout<<"Case "<<cas++<<": "<<n+m-MaxMatch()<<endl;
- }
- return 0;
- }
阅读全文
0 0
- poj3692 补图二分图,最大团
- 二分图最大团-poj3692
- poj3692二分图最大团
- poj3692----图论---二分图最大团
- poj3692 二分图的最大团
- POJ3692 二分图最大团 最大独立集
- POJ2692 Kindergarten 最大团 + 补图二分图
- 最大团&&二分图2
- 图论 二分图 最大团
- bzoj2744 二分图 最大团
- poj3692(二分图)
- POJ3692:Kindergarten(最大团)
- HDU 2458 最大团个数=顶点数 - 补图最大匹配数 二分匹配
- Poj 3692 二分图最大团
- poj 3692 (二分图最大团)
- POJ 3692 Kindergarten (二分图 最大团)
- POJ3692 二分图匹配【入门】
- POJ3692 最大完全二分子图
- DFS非递归算法
- 深度优先搜索(Depth-First-Search,DFS)
- sql 学习
- 超全面的JavaWeb笔记day08<Tomcat&Web应用&HTTP协议>
- 基于ssm框架的个人博客(4)--点击菜单中的功能,在center中添加tab
- poj3692 补图二分图,最大团
- wr720n v4 折腾笔记(五):终篇-编译安装openwrt附带njit
- 9.23 9.24
- Android 自定义view实现TopBar
- Codeforces Round #436 (Div. 2)E. Fire
- WPL算法(二叉树问题)
- ros节点的分析
- SSM整合Redis实现二级缓存
- 用SSH从本地批量复制文件到远程服务器