POJ 2536 最大匹配入门
2010-12-05 18:40
351 查看
Gopher II
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.
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
Sample Output
Source
Waterloo local 2001.01.27
敲错了一个变量,让我WA了很久都没看出来。。
Source Code
Source Code
Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 3680 | Accepted: 1539 |
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.
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 10 1.0 1.0 2.0 2.0 100.0 100.0 20.0 20.0
Sample Output
1
Source
Waterloo local 2001.01.27
敲错了一个变量,让我WA了很久都没看出来。。
Source Code
Problem: 2536 | User: bingshen | |
Memory: 748K | Time: 32MS | |
Language: G++ | Result: Accepted |
#include<stdio.h> #include<algorithm> #include<string.h> #include<math.h> #include<vector> using namespace std; struct Point { double x; double y; }; Point p1[105]; Point p2[105]; vector<int>map[105]; int link[105]; bool cover[105]; int n,m; void init() { memset(link,-1,sizeof(link)); memset(map,0,sizeof(map)); } double dis(Point a,Point b) { return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); } void makemap(int s,int v) { int i,j; double r; r=s*v; for(i=0;i<n;i++) for(j=0;j<m;j++) { if(dis(p1[i],p2[j])<=r) map[i].push_back(j); } } bool find(int v) { int i; for(i=0;i<map[v].size();i++) { if(!cover[map[v][i]]) { cover[map[v][i]]=true; if(link[map[v][i]]==-1||find(link[map[v][i]])) { link[map[v][i]]=v; return true; } } } return false; } int main() { int i,life; double s,v; while(scanf("%d%d%lf%lf",&n,&m,&s,&v)!=EOF) { init(); life=0; for(i=0;i<n;i++) scanf("%lf%lf",&p1[i].x,&p1[i].y); for(i=0;i<m;i++) scanf("%lf%lf",&p2[i].x,&p2[i].y); makemap(s,v); for(i=0;i<n;i++) { memset(cover,0,sizeof(cover)); if(find(i)) life++; } printf("%d/n",n-life); } return 0; }
相关文章推荐
- POJ 2536 Gopher II(二分图最大匹配)
- POJ 2536 Gopher II(二分图最大匹配)
- POJ 2536 Gopher II(二分图最大匹配)
- POJ 1469 COURSES【匈牙利算法入门 二分图的最大匹配 模板题】
- poj 2536 Gopher II 最大匹配
- POJ 1469 COURSES【匈牙利算法入门 二分图的最大匹配 模板题】
- 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--1469,2536
- POJ 1274 The Perfect Stall (二分图最大匹配入门题,匈牙利算法)
- POJ 2536 Gopher II (二分图求最大匹配)
- poj 2536 Gopher II 最大二分匹配
- POJ 2536 Gopher II(二分图的最大匹配)
- poj 2536 二分图 最大匹配