POJ 3041 Asteroids (最小顶点覆盖)
题目类型 最小顶点覆盖
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>using namespace std;const int maxn = 500 + 10;vector<int>E[maxn];
bool vis[maxn];
int y[maxn];bool dfs(int u) {for( int i=0; i<E[u].size(); i++ ) {int v = E[u][i];if(vis[v]) continue;vis[v] = true;if(y[v] == 0 || dfs(y[v])) {//printf("u = %d v = %d y[v] = %d\n", u, v, y[v]);y[v] = u;return true;}}return false;
}int main() {freopen("in", "r", stdin);int n, m;while(scanf("%d%d", &n, &m) != EOF) {for( int i=1; i<=n; i++ ) E[i].clear();for( int i=0; i<m; i++ ) {int u, v;scanf("%d%d", &u, &v);E[u].push_back(v);}int ans = 0;memset(y, 0, sizeof(y));for( int i=1; i<=n; i++ ) {memset(vis, 0, sizeof(vis));if(dfs(i)) ans++;}printf("%d\n", ans);}return 0;
}
POJ 3041 Asteroids (最小顶点覆盖)相关推荐
- POJ - 3041 Asteroids(最小点覆盖-二分图最大匹配)
题目链接:点击查看 题目分析:给出一个n*n的矩阵,其中有m个敌人,每一次操作可以清除某一列或某一行中的所有敌人,问若想清除所有敌人,至少需要多少次操作 题目分析:第一次见这种题,就是最小覆盖是要用最 ...
- POJ 3041 Asteroids (对偶性,二分图匹配)
题目:POJ 3041 Asteroids http://poj.org/problem?id=3041 分析: 把位置下标看出一条边,这显然是一个二分图最小顶点覆盖的问题,Hungary就好. 挑战 ...
- POJ - 3041 Asteroids 二分图最小点覆盖
题目链接 二分图一个很重要的定理:看了很多大神的博客表示看不懂为什么,以后再看 最小点覆盖=最大匹配 最小点覆盖就是在二分图里边,选择一个点,将所有与该点相链接的边删去,问最小找多少个点能够把所有的边 ...
- POJ 3041 Asteroids(最小点覆盖)题解
题意:n*n的网格中有k个点,开一枪能摧毁一行或一列的所有点,问最少开几枪 思路:我们把网格看成两个集合,行集合和列集合,如果有点x,y那么就连接x->y,所以我们只要做最小点覆盖就好了. 参考 ...
- POJ 3041 Asteroids 二分图匹配
以行列为点建图,每个点(x,y) 对应一条边连接x,y.二分图的最小点覆盖=最大匹配 //#pragma comment(linker, "/STACK:1024000000,1024000 ...
- poj 3041 Asteroids
这是一道二分匹配题,根据Konig定理:最大匹配数=最小覆盖数: 这里我们以行为左边,以列为右边建图,这样建好后,就是一个裸的二分匹配: View Code #include<iostream& ...
- [poj3041]Asteroids(二分图的最小顶点覆盖)
题目大意:$N*N$的网格中有$n$颗行星,若每次可以消去一整行或一整列,求最小的攻击次数使得消去所有行星. 解题关键:将光束当做顶点,行星当做连接光束的边建图,题目转化为求该图的最小顶点覆盖,图的最 ...
- poj 1325 Machine Schedule 最小顶点覆盖
题意 两个机器A,B, 分别有 N,M个工作模式, K个作业,可以在( Ai, Bj ) 模式下工作. 机器最初在模式0下. 问最小的 切换模式次数. 解题思路 A, B 两个天然二分图顶点集合, ...
- POJ3041 Asteroids 二分图最小顶点覆盖 Dinic求解最大流
题意 一个n*n的矩阵,有k个位置有小行星,一炮可以摧毁一行或一列行星 问最少需要多少炮可以摧毁所有行星 思路 把一行.一列看成节点,矩阵里的一个小行星看成一条边,如行星位置(r,c),则第r行的节点 ...
最新文章
- 基于Bootstrap、Jquery的自适应导航栏
- python中字符串的方法及注释
- php 提交表单跳转页面,form表单页面跳转方式提交练习
- 机器人简化图画手绘图_高通推出全新RB3 机器人平台,年内支持5G连接
- js+获取当前域名及跳转、下载操作
- python015 Python3 函数
- SSH Backgroup工具汇总
- cs python课程 加州大学_最新盘点!全球顶尖大学CS+数据科学的免费在线课程,共81个...
- SQL笔记三:MySQL常用函数
- 【数据蒋堂】索引的本质是排序
- css超链接样式+雪碧图实现导航
- oeasy教您玩转vim - 3 - # 打开文件
- DOM 详细 一篇就够【重点】
- 按步搭建简单IoT微服务(2)
- 商城-商品规格管理-商品规格参数管理
- 安卓app32位升级64位框架
- 汽车变速系统的换挡律
- jquery通过name,id名称获取当前value值
- word图文混排复制到wangEditor图片不显示
- OpenJudge NOI 1.8 20:反反复复
热门文章
- 计算机视觉会议和期刊等级分类-----2021.07
- PS教程!手把手教你绘制一枚经典的iTunes图标
- 私藏!React 硬核涨薪指南
- 【Flutter 问题系列第 46 篇】如何修改 Flutter 项目的包名
- Unity3D中的第三人称镜头的脚本控制
- SAP后台执行大数据量报表
- 【去后厂村开游戏厅吧】基于pp-tinypose的体感飙车避障游戏
- Blockchain性能扩容(1)- (Size, Segwit, Sidechain)
- iOS16系统开启开发者模式
- 【poi第七节】poi设置excel 设置字体格式,java设置excel设置字体格式