HDU 1068 最大独立数(最大独立数 = 顶点数 - 最大匹配数/2)
来源:互联网 发布:人工智能电影优酷 编辑:程序博客网 时间:2024/06/05 07:45
题目大意:有n个学生,有些学生可以配对(当然是一男一女),有些不可以,相当于如果一男一女可以配对就让他们成为一组,配对不成功的就自己一组,要求最小的组数。
所以 就是一个最大独立数的问题了
最大独立数 = 顶点数 - 最大匹配数/2
采用邻接表
#include <stdio.h>#include <string.h>#include <vector>using namespace std;bool v[505]; //是否已经访问int link[505],n;vector <int> my[505];int find(int x)//二分匹配程序{int i,y;for (i=0;i<my[x].size();i++){y=my[x][i];if (!v[y]){v[y]=1;if (!link[y] || find(link[y])){link[y]=x;return 1;}}}return 0;}int main (){int i,p,k,m,sum;while (scanf("%d",&n)!=EOF){for (i=0;i<n;i++)my[i].clear();for (i=0;i<n;i++){scanf("%d: (%d)",&m,&k);while (k--){scanf("%d",&p);my[m].push_back(p);}}sum=0;memset(link,0,sizeof(link));for (i=0;i<n;i++){memset(v,0,sizeof(v));if (find(i)) sum++;}printf ("%d\n",n-sum/2);}return 0;}
- HDU 1068 最大独立数(最大独立数 = 顶点数 - 最大匹配数/2)
- HDU 1068 Girls and Boys(最大独立集合 = 顶点数 - 最大匹配数)
- HDU 3829 Cat VS Dog ( 最大独立集 = 顶点数 - 最大匹配数)
- Chessboard------最大独立数
- Girls and Boys(最大独立集=节点数-最大匹配数)
- 二分图 最小覆盖数 = 最大匹配数、最大独立集 = 总数-最小覆盖集 证明 hdu 1068
- HDU 4160 Dolls (最小路径覆盖=顶点数-最大匹配数)
- HDU 1151 Air Raid(最小路径覆盖 = 顶点数 - 最大匹配数)
- 彻底搞定二分图的匈牙利算法,最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖
- HDU 2458 最大团个数=顶点数 - 补图最大匹配数 二分匹配
- HDU 4160 最小路径覆盖 = 顶点数 - 最大匹配数 二分匹配
- HDU1068Girls and Boys(最大独立数)
- hdu 1569 方格取数 点最大独立集
- HDU-1150(求最小覆盖顶点数=二分最大匹配数)
- hdu 1569 方格取数(2)--最大点权独立集-->最大流
- 二分图及其匹配算法——最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配
- HDU 1569 方格取数(2)(最大独立点集)
- 二分图大讲堂——彻底搞定最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配(转)
- Ubuntu 12.04 - 修改环境变量导致无法登录系统
- baseAdapter
- 羌笛声声胡笳怨,此心长寄天涯远
- Mesa 3D
- 新生活新开始
- HDU 1068 最大独立数(最大独立数 = 顶点数 - 最大匹配数/2)
- 各种排序算法的总结和比较
- 唠唠叨叨又七夕
- C++ primer
- mesa3d源代码阅读笔记
- Java_Ant详解
- 青春划过指尖
- OpenCV在Ubuntu上的安装及《Learning OpenCV》书例编译
- Mesa 3D概述