POJ3041:Asteroids(二分图匹配)
来源:互联网 发布:学编程从什么开始学 编辑:程序博客网 时间:2024/06/03 18:59
Asteroids
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 23141 Accepted: 12549
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.
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.
* 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).
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
USACO 2005 November Gold
题意:N*N地图,K个位置有炸弹,每次可以将一行或一列炸弹消除,最少几次消除全部炸弹。
思路:每个炸弹的XY看成一条边,就是二分图的最小点覆盖问题了,即求最大匹配。
# include <iostream># include <cstdio># include <cstring># include <vector>using namespace std;int n, k, m[503][503], vis[503], l[503];vector<int>v[503];int dfs(int u){ for(int i=0; i<v[u].size(); ++i) { int j = v[u][i]; if(!vis[j]) { vis[j] = 1; if(l[j] == -1 || dfs(l[j])) { l[j] = u; return 1; } } } return 0;}int main(){ while(~scanf("%d%d",&n,&k)) { memset(l, -1, sizeof(l)); for(int i=1; i<=n; ++i) v[i].clear(); for(int i=0; i<k; ++i) { int x, y; scanf("%d%d",&x,&y); v[x].push_back(y); } int ans = 0; for(int i=1; i<=n; ++i) { memset(vis, 0, sizeof(vis)); if(dfs(i)) ++ans; } printf("%d\n",ans); } return 0;}
阅读全文
0 0
- POJ3041-Asteroids(二分图匹配)
- POJ3041:Asteroids(二分图匹配)
- poj3041--Asteroids(二分匹配)
- POJ3041 Asteroids【二分匹配】
- 【POJ3041】Asteroids(二分图)
- POJ3041——Asteroids(二分图最大匹配)
- POJ3041--Asteroids--二分图最大匹配--Konig
- (二分图最大匹配) poj3041 Asteroids
- POJ3041 Asteroids(二分图)
- Poj3041-Asteroids-【二分图】
- poj3041 Asteroids 最小点覆盖 二分图匹配
- POJ3041 Asteroids 二分匹配-匈牙利算法
- poj3041 Asteroids 二分匹配匈牙利模版题目
- POJ3041(二分图匹配)
- poj3041——Asteroids(二分图,匈牙利算法)
- poj3041 - Asteroids (二分图最小顶点覆盖)
- poj3041 Asteroids 最小点覆盖 二分图
- POJ3041 Asteroids【二分图最小点覆盖】
- POJ1984 Navigation Nightmare(并查集)
- Java 内部类原理解析
- HDU 6040 Hints of sd0061 stl
- Java-synchronize和lock详解(转)
- oop
- POJ3041:Asteroids(二分图匹配)
- HDU 6035 Colorful Tree
- JDK源码分析之主要阻塞队列实现类LinkedBlockingQueue
- 杂记-路由器上网设置:输入路由器设置网址却登陆至猫
- 最长公共子序列
- MyISAM存储引擎
- 不完整类型incomplete type
- Feign学习笔记1-实战
- Spring MVC 学习总结(一)——MVC概要与环境配置