zoukankan      html  css  js  c++  java
  • poj 3041 Asteroids (二分图)

    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 4
    1 1
    1 3
    2 2
    3 2
    

    Sample Output

    2

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<vector>
     5 using namespace std;
     6 #define N 555
     7 int map[N][N];
     8 int from[N],v[N],n;
     9 bool dfs(int x)
    10 {
    11     for (int i=1;i<=n;i++)
    12     {
    13         if (v[i]||!map[x][i]) continue;
    14         v[i]=1;
    15         if (from[i]==-1||dfs(from[i]))
    16         {
    17             from[i]=x;
    18             return true;
    19         }
    20     }
    21     return false;
    22 }
    23 int main()
    24 {
    25     int k,i,a,b,ans=0;
    26     scanf("%d%d",&n,&k);
    27     memset(map,0,sizeof(map));
    28     while (k--)
    29     {
    30         scanf("%d%d",&a,&b);
    31         map[a][b]=1;
    32     }
    33     memset(from,-1,sizeof(from));
    34     for (i=1;i<=n;i++)
    35     {
    36         memset(v,0,sizeof(v));
    37         ans+=dfs(i);
    38     }
    39     printf("%d
    ",ans);
    40 }
  • 相关阅读:
    jmeter录制
    Jmeter之逻辑控制器
    Jmeter关联
    Jmeter之HTTP请求默认值
    shell一文入门通
    Linux系统编程——基础命令总结
    前端专业方向的尽头
    锤子,技术与交互体验细节
    学习汇总 2019-12-2
    不容错过的 Babel7 知识
  • 原文地址:https://www.cnblogs.com/pblr/p/4957411.html
Copyright © 2011-2022 走看看