POJ - 1466 Girls and Boys 二分图+最大独立集
2024-10-01 22:27:02
标题效果:有着n学生,有一些同学之间的特殊关系。。
。为了一探究竟m学生。要求m免两者之间的学生有没有这样的特殊关系
解决问题的思路:二分图的问题,殊关系是对称的。所以能够将两个点集都设置为n个点。求出最大匹配后再除以2就可以得到(由于关系是对称的。所以所求得的最大匹配是双倍的)
得到最大匹配了,能够由定理得到 最大独立集 = n - 最大匹配数
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
const int N = 510;
vector<int> s[N];
int vis[N];
int link[N];
int n;
bool dfs(int u) {
for(int i = 0; i < s[u].size(); i++) {
if(!vis[s[u][i]]) {
vis[s[u][i]] = 1;
if(link[s[u][i]] == -1 || dfs(link[s[u][i]])) {
link[s[u][i]] = u;
return true;
}
}
}
return false;
}
int main() {
while(scanf("%d", &n) != EOF) {
for(int i = 0; i < n; i++)
s[i].clear();
int x, y, z;
for(int i = 0; i < n; i++) {
scanf("%d: (%d)", &x, &y);
for(int j = 0; j < y; j++) {
scanf("%d", &z);
s[x].push_back(z);
}
}
int ans = 0;
memset(link, -1, sizeof(link));
for(int i = 0; i < n; i++) {
memset(vis,0,sizeof(vis));
if(dfs(i))
ans++;
}
printf("%d\n", n - ans / 2);
}
return 0;
}
最新文章
- WPF 自定义窗口关闭按钮
- BAT 技术团队博客
- SqlServer英文单词全字匹配
- Linux中zip压缩和unzip解压缩命令详解
- PHP带重试功能的curl
- Sharepoint更新字段触发工作流(无代码)
- COM组件(MFC篇)
- <;转>;Python3.x和Python2.x的区别介绍
- 【原】模式之-适配器Adapter模式
- C# 语言的两个html解析器
- js判断MAC地址
- Eclipse插件的各种安装方法
- 【转】如何成为一位优秀的创业CEO
- 宏WINAPI和几种调用约定
- 内置函数值 -- chr() ord() -- 字符和ascii的转换
- The perception and large margin classifiers
- 二叉搜索树、AVL平衡二叉搜索树、红黑树、多路查找树
- QTP_随机生成N个字符(包含数字和字母)
- 2018-2019-20172329 《Java软件结构与数据结构》第五周学习总结
- Android 自定义 ListView 上下拉动&ldquo;刷新最新&rdquo;和&ldquo;加载更多&rdquo;歌曲列表
热门文章
- JS学习笔记 - fgm练习 - 多按钮控制同个div属性
- 常用到的Linux命令
- java中Arrays类的应用
- 硬件——STM32 , SN74HC573锁存器
- spring boot 2.x Path with ";WEB-INF"; or ";META-INF";
- 10.5 android输入系统_Reader线程_使用EventHub读取事件和核心类及配置文件_实验_分析
- iproute2交叉编译
- POJ 2823 Sliding Window 线段树
- PatentTips - SNMP firewall
- [AngularJS Ng-redux] Integrate ngRedux