博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 3041 Asteroids
阅读量:6273 次
发布时间:2019-06-22

本文共 2101 字,大约阅读时间需要 7 分钟。

Asteroids
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 14388   Accepted: 7828

Description

Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N grid (1 <= N <= 500). The grid contains K asteroids (1 <= K <= 10,000), which are conveniently located at the lattice points of the grid. 
Fortunately, Bessie has a powerful weapon that can vaporize all the asteroids in any given row or column of the grid with a single shot.This weapon is quite expensive, so she wishes to use it sparingly.Given the location of all the asteroids in the field, find the minimum number of shots Bessie needs to fire to eliminate all of the asteroids.

Input

* Line 1: Two integers N and K, separated by a single space. 
* Lines 2..K+1: Each line contains two space-separated integers R and C (1 <= R, C <= N) denoting the row and column coordinates of an asteroid, respectively.

Output

* Line 1: The integer representing the minimum number of times Bessie must shoot.

Sample Input

3 41 11 32 23 2

Sample Output

2

Hint

INPUT DETAILS: 
The following diagram represents the data, where "X" is an asteroid and "." is empty space: 
X.X 
.X. 
.X.
 
OUTPUT DETAILS: 
Bessie may fire across row 1 to destroy the asteroids at (1,1) and (1,3), and then she may fire down column 2 to destroy the asteroids at (2,2) and (3,2).

Source

将模型转化为二分图   依据匈牙利算法直接套用模板就可以
#include
#include
using namespace std;#define M 505int map[M][M];int vis[M],flag[M];int n,m,ans;int xyl(int x){ int i; for(i=1;i<=n;i++) { if(map[x][i]&&!vis[i]) { vis[i]=1; if(!flag[i]||xyl(flag[i])) { flag[i]=x; return 1; } } } return 0;}int main(){ int i,j,x,y; while(cin>>n>>m) { memset(map,0,sizeof(map)); memset(flag,0,sizeof(flag)); for(i=0;i
>x>>y; map[x][y]=1; } ans=0; for(i=1;i<=n;i++) { memset(vis,0,sizeof(vis)); ans+=xyl(i); } cout<
<

转载地址:http://gklpa.baihongyu.com/

你可能感兴趣的文章
数据结构实践——顺序表应用
查看>>
python2.7 之centos7 安装 pip, Scrapy
查看>>
机智云开源框架初始化顺序
查看>>
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
查看>>
一线架构师实践指南:云时代下双活零切换的七大关键点
查看>>
ART世界探险(19) - 优化编译器的编译流程
查看>>
玩转Edas应用部署
查看>>
music-音符与常用记号
查看>>
sql操作命令
查看>>
zip 数据压缩
查看>>
Python爬虫学习系列教程
查看>>
【数据库优化专题】MySQL视图优化(二)
查看>>
【转载】每个程序员都应该学习使用Python或Ruby
查看>>
PHP高级编程之守护进程,实现优雅重启
查看>>
PHP字符编码转换类3
查看>>
rsync同步服务配置手记
查看>>
Android下创建一个sqlite数据库
查看>>
数组<=>xml 相互转换
查看>>
MFC单文档应用程序显示图像
查看>>
poj 2777(线段树的节点更新策略)
查看>>