POJ 2536 Gopher II (二分图最大匹配)

题目链接:http://poj.org/problem?id=2536


题意:有若干只田鼠,给出他们的坐标,有若干个洞,同样给出坐标,当遇到危险时田鼠可以在s秒内跑进一个洞,但一个洞只能容纳一只地鼠,给出田鼠的速度v,问遇到危险最多有多少只田鼠可以进洞


思路:如果田鼠i与地洞j的距离少于s*v,则代表它可以进入该洞,G[i][j]=1,建立二分图,用匈牙利算法求最大匹配


#include 
#include 
#include 
#include 
//#include 
#define maxn 130
#define eps 0.00000001
using namespace std;

double x1[maxn],y1[maxn],x2[maxn],y2[maxn];
int G[maxn][maxn],list[maxn],vis[maxn];
int n,m,s,vv;

int check(int u,int v)
{
    double dis=(x1[u]-x2[v])*(x1[u]-x2[v])+(y1[u]-y2[v])*(y1[u]-y2[v]);
   // cout<


你可能感兴趣的:(ACM_二分图)