POJ2536_Gopher II(二分图最大匹配)
来源:互联网 发布:零境网络有哪些游戏 编辑:程序博客网 时间:2024/04/30 15:27
解题报告
http://blog.csdn.net/juncoder/article/details/38156509
题目传送门
题意:
n只地鼠,m个洞,老鹰的到达地面的时间s,地鼠的移动速度v,求多少只地鼠会被老鹰吃了。
思路:
地鼠和洞看成两集合,建立二分图。只有当地鼠到洞的时间少于老鹰到地面的时间才连边。
#include <cmath>#include <cstdio>#include <cstring>#include <iostream>using namespace std;int n,m,s,v,mmap[500][500],vis[500],pre[500];struct point{ double x,y;}G[200],H[200];double dis(point p1,point p2){ return sqrt((p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y));}int dfs(int x){ for(int i=n+1;i<=n+m;i++){ if(!vis[i]&&mmap[x][i]){ vis[i]=1; if(pre[i]==-1||dfs(pre[i])){ pre[i]=x; return 1; } } } return 0;}int main(){ //std::ios::sync_with_stdio(false); int i,j,a,b,t; while(~scanf("%d%d%d%d",&n,&m,&s,&v)){ memset(pre,-1,sizeof(pre)); memset(mmap,0,sizeof(mmap)); for(i=1;i<=n;i++){ scanf("%lf%lf",&G[i].x,&G[i].y); } for(i=1;i<=m;i++){ scanf("%lf%lf",&H[i].x,&H[i].y); } for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ double d=dis(G[i],H[j]); if(d/v<=(double)s){ mmap[i][n+j]=1; } } } int ans=0; for(i=1;i<=n;i++){ memset(vis,0,sizeof(vis)); ans+=dfs(i); } printf("%d\n",n-ans); } return 0;}
Gopher II
Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 6438 Accepted: 2640
Description
The gopher family, having averted the canine threat, must face a new predator.
The are n gophers and m gopher holes, each at distinct (x, y) coordinates. A hawk arrives and if a gopher does not reach a hole in s seconds it is vulnerable to being eaten. A hole can save at most one gopher. All the gophers run at the same velocity v. The gopher family needs an escape strategy that minimizes the number of vulnerable gophers.
The are n gophers and m gopher holes, each at distinct (x, y) coordinates. A hawk arrives and if a gopher does not reach a hole in s seconds it is vulnerable to being eaten. A hole can save at most one gopher. All the gophers run at the same velocity v. The gopher family needs an escape strategy that minimizes the number of vulnerable gophers.
Input
The input contains several cases. The first line of each case contains four positive integers less than 100: n, m, s, and v. The next n lines give the coordinates of the gophers; the following m lines give the coordinates of the gopher holes. All distances are in metres; all times are in seconds; all velocities are in metres per second.
Output
Output consists of a single line for each case, giving the number of vulnerable gophers.
Sample Input
2 2 5 101.0 1.02.0 2.0100.0 100.020.0 20.0
Sample Output
1
1 0
- POJ2536_Gopher II(二分图最大匹配)
- POJ2536 Gopher II【二分图最大匹配】
- Gopher II(二分图最大匹配)
- POJ2536 Gopher II(二分图最大匹配)
- 【二分图+最大匹配】北大 poj 2536 Gopher II
- ZOJ 1882 Gopher II(二分图最大匹配)
- HDOJ 2236 - 无题II 暴力+二分图最大匹配判断
- POJ 2536 Gopher II(二分图最大匹配)
- POJ 2536 Gopher II(二分图最大匹配)
- POJ 2536 Gopher II(二分图的最大匹配)
- poj 2536 Gopher II 二分图最大匹配
- POJ 2536 Gopher II (二分图求最大匹配)
- POJ - 2536 Gopher II 二分图 最大匹配
- POJ 2536 Gopher II (二分图最大匹配)
- POJ 2536 Gopher II(二分图最大匹配)
- poj 2536 Gopher II(二分图最大匹配,构图)
- POJ 2536 Gopher II(二分图最大匹配)
- POJ 2536 Gopher II(二分图最大匹配)
- opencv 移植
- [bash script] 初始化一个 node.js 应用开发 working tree
- 发的房东和地方好的
- fytgdshlkdfhmglgjhvoj
- 线段树离线处理专题
- POJ2536_Gopher II(二分图最大匹配)
- C回调函数与java回调方法
- w6e893 bdn92z10
- m3t461 zvz38x52
- 2014新生暑假个人排位赛06 A.修路
- fee十分风瑟瑟粉色分非色散分粉色
- 该死该死的人格的人过的人更多的人过
- 两个控件的交叉淡入淡出
- java中的 FileWriter类 和 FileReader类的一些基本用法