用匈牙利就行,比较赤裸。

/** hdu2119/win.cpp* Created on: 2012-8-13* Author    : ben*/
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;const int MAXN = 210;
int N, M, mymatch[MAXN];
bool visited[MAXN], mymap[MAXN][MAXN];bool buildgraph() {int t;scanf("%d", &N);if(N == 0) {return false;}scanf("%d", &M);memset(mymap, false, sizeof(mymap));for(int i = 0; i < N; i++) {for(int j = 0; j < M; j++) {scanf("%d", &t);if(t == 1) {mymap[i][j] = true;}}}return true;
}
bool dfs(int k) {int t;for (int i = 0; i < M; i++) {if (mymap[k][i] && !visited[i]) {visited[i] = true; t = mymatch[i]; mymatch[i] = k;if (t == -1 || dfs(t)) {return true;}mymatch[i] = t;}}return false;
}
int hungary () {memset(mymatch, -1, sizeof(mymatch));int ans = 0;for (int i = 0; i < N; i++) {memset(visited, false, sizeof(visited));if (dfs(i)) {ans++;}}return ans;
}int main() {
#ifndef ONLINE_JUDGEfreopen("data.in", "r", stdin);
#endifwhile(buildgraph()) {printf("%d\n", hungary());}return 0;
}

转载于:https://www.cnblogs.com/moonbay/archive/2012/08/14/2638714.html

hdu 2119最小点集覆盖相关推荐

  1. POJ 1325 Machine Schedule(二分图最小点集覆盖)

    题目链接:http://poj.org/problem?id=1325 题意:A机器有n个模式,B机器有m个模式,有k个任务,第i个任务可以用A机器的ai模式或者B机器的bi模式,换模式需要重启,开始 ...

  2. POJ-2226 Muddy Fields 最小点集覆盖

    题目链接:http://poj.org/problem?id=2226 这题是POJ 3041的升级版本,很有意思,要求木板不能盖在草地上.那么这里我们可以把每行一连续'*'的看做行,把每列连续的'* ...

  3. HDU - 1151 Air Raid(最小路径覆盖-二分图最大匹配)

    题目链接:点击查看 题目大意:给出一个有向图,现在需要在不同的地方空降伞兵,保证所有伞兵沿着道路可以走完所有城市,求出最少伞兵的数量 题目分析:我们的目的是要用最少的路径覆盖所有顶点,换句话说就是二分 ...

  4. 最小路径覆盖,最小点覆盖,最大独立点集(转)

    来自:http://blog.csdn.net/l04205613/article/details/6278394 node  1:最小路径覆盖 在一个PXP的有向图中,路径覆盖就是在图中找一些路经, ...

  5. 有向图最小路径覆盖方法浅析、证明 //hdu 3861

    路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联. 对于一个有向无环图怎么求最小路径覆盖? 先构造二分图: 对于原图,先拆点,吧每个点i拆成ii,iii. ...

  6. HDU 3861 The King’s Problem (强连通缩点+DAG最小路径覆盖)

    <题目链接> 题目大意: 一个有向图,让你按规则划分区域,要求划分的区域数最少. 规则如下:1.所有点只能属于一块区域:2,如果两点相互可达,则这两点必然要属于同一区域:3,区域内任意两点 ...

  7. HDU 3861 The King’s Problem 强连通分量 最小路径覆盖

    先找出强连通分量缩点,然后就是最小路径覆盖. 构造一个二分图,把每个点\(i\)拆成两个点\(X_i,Y_i\). 对于原图中的边\(u \to v\),在二分图添加一条边\(X_u \to Y_v\ ...

  8. (hdu step 6.3.3)Air Raid(最小路径覆盖:求用最少边把全部的顶点都覆盖)

    题目: Air Raid Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

  9. hdu 4160 (Dolls)二分图的最小路径覆盖

    关于二分图,让人很头疼啊!归结为一句话,就是看不出来题目是二分图的问题. 也许是对二分图不太熟悉吧!需要多练习! 题目大意:给出n个箱子,每个箱子的参数为长,宽,高:(a,b,c):当且仅当箱子s1, ...

最新文章

  1. Linux下程序崩溃dump时的 core文件的使用方法
  2. Python基础03 序列
  3. oracle中year类型吗,为什么表名this_year_end+next_year在Oracle数据库中无效?()
  4. Opengl_20 _复习变换矩阵+复习光源+两个模型使用不同的shader
  5. 错误计算机怎么打开,电脑开机出错怎么回事
  6. 最新csdnJS逆向分析
  7. Data - 信息获取途径汇总
  8. java 队列总结queue v3 svv.docxjava 队列总结queue v3 svv.docx atitit. java queue 队列体系总结o7t 1. 队列概念 1 1.1. 队列
  9. cf406E Hamming Triples (推公式)
  10. 【转】网站挂马和端口抓鸡经验总结
  11. JDK1.8中HashMap如何应对hash冲突?
  12. 数据特征分析:帕累托分析(贡献度分析)
  13. 禁止html5手机端双击页面放大的问题,主要针对苹果手机
  14. 零售航母沃尔玛公布业绩:喜忧参半
  15. python3-函数与参数以及空值
  16. MP4/MPEG4/3GP转换软件至尊---《MP4/RM转换专家》小记
  17. java集合结构----集合框架以及背后的数据结构
  18. x10ti怎么禁用核显_第十代酷睿H性能提升了多少?8核16线程i7 10875H独家测试告诉你答案...
  19. 【动网论坛7.1 sp1 修改】-关于增加本帖地址[复制本页地址 粘贴]的修改方法...
  20. php 实心圆,Android利用drawable-xml自定义实心圆和空心圆

热门文章

  1. beaglebone black 联网
  2. 9.4-6 kill killall pkill
  3. python和sqlserver_利用python实现mysql数据库向sqlserver的同步
  4. 问题 C: PK没有女朋友(判断是否存在1个三元环,dfs)
  5. 皇nity webgl与html交互文件,Vue与UnityWebGl交互通信
  6. 差分放大电路差模共模公式_选择正确的放大器
  7. 云原生一体化数仓发布
  8. 一文看懂微服务背后的技术演进与应用实践
  9. 唯品会在 Flink 容器化与平台化上的建设实践
  10. Python面向对象(一)