hdoj-1068(二分图的最小点覆盖)
1 问题转化: 求二分图最小点覆盖(覆盖所有的边)
2 问题的解决: 二分图最小点覆盖==其最大匹配数
3 证明: 链接
=#include <bits/stdc++.h>
using namespace std;
const int N = ;
vector < vector <int> > g(N);
int match [N];
bool visit[N];
int n;
bool dfs (int x) {
for (int i=;i<g[x].size();i++) {
int t=g[x][i];
if (!visit[t]) {
visit[t]=;
if (match[t]<||dfs(match[t])) {
match[t]=x;
return ;
}
}
}
return ;
}
int main ()
{
while (~scanf ("%d", &n)) {
for (int i=;i<n;i++) g[i].clear();
memset (match,-,sizeof(match));
for (int i = ; i <= n; i++) {
int id, num;
scanf ("%d: (%d)", &id, &num);
for (int j = ; j < num;j++) {
int u; scanf ("%d", &u);
g[id].push_back(u);
}
}
int ans = ;
for (int i = ; i < n; i++) {
memset (visit, , sizeof(visit));
if (dfs(i)) ans++;
}
printf("%d\n", n - ans / );// 为什么/2 因为二分图两边都遍历了
}
return ;
}
hdoj-1068(二分图的最小点覆盖)的更多相关文章
- 二分图匹配 + 最小点覆盖 - Vertex Cover
Vertex Cover Problem's Link Mean: 给你一个无向图,让你给图中的结点染色,使得:每条边的两个顶点至少有一个顶点被染色.求最少的染色顶点数. analyse: 裸的最小点 ...
- hdu - 1150 Machine Schedule (二分图匹配最小点覆盖)
http://acm.hdu.edu.cn/showproblem.php?pid=1150 有两种机器,A机器有n种模式,B机器有m种模式,现在有k个任务需要执行,没切换一个任务机器就需要重启一次, ...
- POJ-1325 Machine Schedule 二分图匹配 最小点覆盖问题
POJ-1325 题意: 有两台机器A,B,分别有n,m种模式,初始都在0模式,现在有k项任务,每项任务要求A或者B调到对应的模式才能完成.问最少要给机器A,B调多少次模式可以完成任务. 思路: 相当 ...
- POJ 1274 The Perfect Stall(二分图 && 匈牙利 && 最小点覆盖)
嗯... 题目链接:http://poj.org/problem?id=1274 一道很经典的匈牙利算法的题目: 将每只奶牛看成二分图中左边的点,将牛圈看成二分图中右边的点,如果奶牛看上某个牛圈,就将 ...
- HDU 2063 过山车(二分图 && 匈牙利 && 最小点覆盖)
嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 这是一道很经典的匈牙利问题: 把男同学看成左边点,女同学看成右边点,如果两个同学愿意同 ...
- HDU 1150 Machine Schedule (二分图最小点覆盖)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1150 有两个机器a和b,分别有n个模式和m个模式.下面有k个任务,每个任务需要a的一个模式或者b的一个 ...
- 【Learning】最小点覆盖(二分图匹配) 与Konig定理证明
(附一道例题) Time Limit: 1000 ms Memory Limit: 128 MB Description 最小点覆盖是指在二分图中,用最小的点集覆盖所有的边.当然,一个二分图的最小 ...
- POJ3041 Asteroids(二分图最小点覆盖)
Description Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape o ...
- 四川第七届 D Vertex Cover(二分图最小点覆盖,二分匹配模板)
Vertex Cover frog has a graph with nn vertices v(1),v(2),…,v(n)v(1),v(2),…,v(n) and mm edges (v(a1), ...
随机推荐
- SpringBoot启动器
pom.xml文件1.父项目 <parent> <groupId>org.springframework.boot</groupId> <artifactId ...
- gpu内存查看命令nvidia-smi
nvidia-smi nvidia-settings nvidia-xconfig
- php ajax bootstrap多文件上传图片预览,ajax上传文件
<form enctype="multipart/form-data" id="upForm"> <label class="btn ...
- [IOS微信] 查看微信原始数据(含沙盒中的数据)
1.下载PP助手,将苹果手机连接到电脑上, 2.备份数据 备份还原——备份数据——全新备份 3.导出数据 备份还原——还原数据,在右边的列表中找到备份记录,点击“查看”, 在弹出窗口的右侧,找到“Ap ...
- AI工具(星形工具)(光晕工具)(移动复制)(柜子绘制)5.12
星形工具;基本操作与矩形一样,拖动星形工具绘制,点击键盘上箭头增加星形的角数.下箭头减少星形的角数. 选择星形工具在屏幕单击,出现星形对话框,可以设置半径1半径2,角点数.图中的星形就可以用星形工具绘 ...
- LTP(LinuxTest Project)测试工具
LTP(LinuxTest Project)是SGI.IBM.OSDL和Bull合作的项目,目的是为开源社区提供一个测试套件,用来验证Linux系统可靠性.健壮性和稳定性.LTP测试套件是测试Linu ...
- day3-PyCharm 断点 调试模式
上篇学习了Python的工具选择,PyCharm的基本设置,简单的了解了下PyCharm的调试模式,今天主要学习下PyCharm的调式模式,在以后的开发中是一个非常重要的工具. [运行]和[调试]前的 ...
- nginx启用php
1. php下载https://secure.php.net/downloads.php搜索china镜像站点,从这里下载http://cn2.php.net/get/php-7.2.3.tar.gz ...
- Bluedroid: 音频数据的传输流程
一. UIPC: Audio Flinger获取到a2dp的hw module,然后蓝牙协议栈有专用于发送和接收media数据的线程,名称:btif_media_task. 蓝牙与Audio的 ...
- 3.7 C++派生类构造函数调用规则
参考:http://www.weixueyuan.net/view/6364.html 总结: 派生类构造函数可以自动调用基类的默认构造函数而无需显式调用. 生类构造函数可以自动调用基类的默认构造函数 ...