UVA 10382 - Watering Grass
2013-11-11 22:43
260 查看
Watering Grass
Input: standard input
Output: standard output
Time Limit: 3 seconds
n sprinklers areinstalled in a horizontal strip of grass l meters long andwmeters wide. Each sprinkler is installed at the horizontal center line of thestrip. For each sprinkler we are given its position as the distance from theleft
end of the center line and its radius of operation.
What is the minimum number of sprinklers to turnon in order to water the entire strip of grass?
Input
Input consists of a number ofcases. The first line for each case contains integer numbersn,
land w with n <= 10000. The next n lines containtwo integers giving the position of a sprinkler and its radius of operation.(The picture above illustrates the first case from the sample input.)
Output
For each test case output the minimum number of sprinklers needed to waterthe entire strip of grass. If it is impossible to water the entire strip output-1.
5 3
4 1
1 2
7 2
10 2
13 3
16 2
19 4
3 10 1
3 5
9 3
6 1
3 10 1
5 3
1 1
9 1
2
-1
(Regionals 2002 Warm-up Contest, Problem setter: Piotr Rudnicku)
贪心,主要就是精度问题。
Input: standard input
Output: standard output
Time Limit: 3 seconds
n sprinklers areinstalled in a horizontal strip of grass l meters long andwmeters wide. Each sprinkler is installed at the horizontal center line of thestrip. For each sprinkler we are given its position as the distance from theleft
end of the center line and its radius of operation.
What is the minimum number of sprinklers to turnon in order to water the entire strip of grass?
Input
Input consists of a number ofcases. The first line for each case contains integer numbersn,
land w with n <= 10000. The next n lines containtwo integers giving the position of a sprinkler and its radius of operation.(The picture above illustrates the first case from the sample input.)
Output
For each test case output the minimum number of sprinklers needed to waterthe entire strip of grass. If it is impossible to water the entire strip output-1.
Sample input
8 20 25 3
4 1
1 2
7 2
10 2
13 3
16 2
19 4
3 10 1
3 5
9 3
6 1
3 10 1
5 3
1 1
9 1
Sample Output
6
2
-1
(Regionals 2002 Warm-up Contest, Problem setter: Piotr Rudnicku)
贪心,主要就是精度问题。
#include <cstdio> #include <vector> #include <algorithm> #include <cstring> #include <map> #include <cmath> #include <queue> #include <set> using namespace std; #ifdef WIN typedef __int64 LL; #define form "%I64d\n" #else typedef long long LL; #define form "%lld\n" #endif #define SI(a) scanf("%d", &(a)) #define SDI(a, b) scanf("%d%d", &(a), &(b)) #define S64I(a) scanf(form, &a) #define SS(a) scanf("%s", (a)) #define SDS(a, b) scanf("%s%s", (a), (b)) #define SC(a) scanf("%c", &(a)) #define PI(a) printf("%d\n", a) #define PS(a) puts(a) #define P64I(a) printf(form, a) #define Max(a, b) (a > b ? a : b) #define Min(a, b) (a < b ? a : b) #define MSET(a, b) (memset(a, b, sizeof(a))) #define Mid(L, R) (L + (R - L)/2) #define Abs(a) (a > 0 ? a : -a) #define REP(i, n) for(int i=0; i < (n); i++) #define FOR(i, a, n) for(int i=(a); i <= (n); i++) const int INF = 0x3f3f3f3f; const double eps = 10e-9; const int maxn = 10000 + 50; typedef struct Node { double l, r; bool operator < (const Node & b) const { return l < b.l; } } Node; Node Water[maxn]; int main() { int n, L; double w; while(scanf("%d%d%lf", &n, &L, &w) == 3) { int nn = 0; REP(i, n) { int x, y; scanf("%d%d", &x, &y); if(x < 0 || x > L || (w-y*2.0 > -eps)) continue; double l, r; l = (double)x - sqrt((double)y*y-(w*w/4.0)); r = (double)x + sqrt((double)y*y-(w*w/4.0)); Water[nn].l = l; Water[nn].r = r; nn++; } n = nn; sort(Water, Water+n); double y=0; int ans = 0; while(L-y > eps) { double my = 0; int myi = 0; int i=0; while(i < n && y - Water[i].l > -eps) { if(Water[i].r > my) { my = Water[i].r; myi = i; } i++; } if(y-my > -eps) { break; } y = my; ans ++; } if(L-y > eps) { puts("-1"); } else { PI(ans); } } return 0; }
相关文章推荐
- UVa 10382 Watering Grass (贪心&pair使用技巧)
- uva 10382 - Watering Grass
- uva 10382 - Watering Grass
- uva_10382_Watering Grass( 貪心 )
- UVA - 10382 Watering Grass(贪心)
- uva 10382 Watering Grass(贪心-区间覆盖变形)
- uva 10382 Watering Grass(贪心-区间覆盖变形)
- UVA 10382 Watering Grass(区间嵌套)
- UVA 10382 Watering Grass(变相的最小覆盖问题)
- UVA10382- Watering Grass(区间覆盖问题)
- UVA - 10382 Watering Grass (贪心+区间覆盖)
- UVA 10382 Watering Grass 区间覆盖问题 -
- UVA 10382 Watering Grass(贪心 区间覆盖问题)
- uva 10382 Watering Grass(贪心)
- uva 10382 Watering Grass
- UVA 10382 Watering Grass (贪心)
- UVA - 10382 Watering Grass 贪心+区间覆盖
- UVa 10382 - Watering Grass(贪心算法)
- UVA 10382喷水设施
- uva 10382 Watering Grass