POJ 1466 最大独立集
来源:互联网 发布:视频合并软件 安卓版 编辑:程序博客网 时间:2024/05/21 12:50
链接网址:POJ 1466
最大独立集=顶点个数-最大匹配数/2
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define MAXN 505 // 实际问题时需要修改int mat[MAXN][MAXN]; // 邻接矩阵mat 的0行0列不用 int nx, ny; // 实际问题时矩阵的行列数 int fy[MAXN], matx[MAXN], maty[MAXN]; int DFS( int u ) { int v; for (v=1;v<=ny;v++) if (mat[u][v] && fy[v]<0) { fy[v]=1; if (maty[v]<0 || DFS(maty[v])) { matx[u]=v; maty[v]=u; return 1; } } return 0; } int MaximumMatch( ) {int i, ret=0;memset(matx,-1,sizeof(matx));memset(maty,-1,sizeof(maty));for (i=1;i<=nx;i++) if (matx[i]<0) {memset(fy,-1,sizeof(fy)); ret+=DFS(i);}return ret;}int main(){int t,i,j,k,n,m,mm,x,y; char s1[100],s2[100];while(scanf("%d",&n)!=EOF){ memset(mat,0,sizeof(mat)); nx=n;ny=n; for(i=0;i<n;i++){ scanf("%s%s",s1,s2); sscanf(s1,"%d:",&x); sscanf(s2,"(%d)",&m); for(j=0;j<m;j++) { scanf("%d",&y); mat[x+1][y+1]=1; } }cout<<n-MaximumMatch( )/2<<endl;}//system("pause"); return 0;}
- POJ 1466 最大独立集
- poj 1466 最大独立集
- poj 1466 匈牙利(最大独立集)
- poj 1466 二分图 最大独立集
- POJ 1466 最大独立集入门
- poj 1466 最大独立点集
- hdu 1068 poj 1466 最大独立集
- POJ 1466 二分匹配 最大独立集
- POJ 1466 最大独立点集
- 最大独立集,二分图最大匹配 poj 1466
- POJ 2771 最大独立集
- Poj 1419 最大独立集
- POJ 1419 最大独立集
- POJ 3692 最大独立集
- poj 2724 最大独立集
- POJ 1466 Girls and Boys (最大独立集Hungary)
- pku(poj) 1466 Girls and Boys (最大独立集)
- POJ 1466 Girls and Boys(最大独立点集)
- 数据结构--二叉树--中序非递归遍历二叉树(链式结构)2
- OK6410(256MRAM2Gnandflash) uboot2010.03移植笔记
- Ogre gpu程序
- 《java performance》读书笔记之 jvm 垃圾回收
- 惨痛的教训啊,必须要检查函数的返回类型
- POJ 1466 最大独立集
- 关于N皇后问题
- 拆解InstallShield安装包
- js
- java项目使用spring jdbc连接数据库
- iPhone文件系统NSFileManager 数据文件持久性
- hdu 1004 Let the Balloon Rise
- 【hdu】 Watch The Movie 【二维费用背包】【dp初始化很重要】
- perl文件和目录操作