UVA - 1615 Highway 区间覆盖
2015-05-05 17:00
225 查看
题目大意:在平面上有n个点和一个值D,要求再长度为L的x轴上选出尽量少的点,使得对于给定的每个点,都有一个选出的点离它的欧几里德距离不超过D
解题思路:算出每个点的区间范围。区间的重叠部分由几个区间构成就有几个点满足要求。
解题思路:算出每个点的区间范围。区间的重叠部分由几个区间构成就有几个点满足要求。
[code]#include<cstdio> #include<algorithm> #include<cmath> #define maxn 100010 using namespace std; double L, D; int n; struct villages{ double l, r; }vill[maxn]; bool cmp(const villages a, const villages b) { if(a.r == b.r) return a.l < b.l; else return a.r < b.r; } int main() { while(scanf("%lf%lf", &L, &D) == 2) { scanf("%d", &n); double x, y, len; for(int i = 0; i < n; i++) { scanf("%lf%lf", &x, &y); len = sqrt(D * D - y * y); vill[i].l = max(x - len,0.0); vill[i].r = min(L,x + len); } sort(vill, vill + n, cmp); int ans = 1; double r = vill[0].r; for(int i = 1; i < n; i++) if(r >= vill[i].l && r <= vill[i].r) continue; else{ ans++; r = vill[i].r; } printf("%d\n", ans); } return 0; }
相关文章推荐
- UVA - 1615 Highway 区间覆盖
- UVa - 1615 Highway 高速公路 贪心+区间选点 重庆一中高2018级竞赛班第五次测试 2016.7.26 Problem 1
- UVA-1615 Highway (贪心,区间选点)
- UVA 1615 Highway 区间选点 经典贪心 (SEERC 2005)
- UVa 1615 Highway (贪心,区间选点问题)
- UVA 1615 Highway (贪心, 区间选点)
- UVA 1615 Highway 高速公路 (区间选点)
- 习题8-11 UVA - 1615 Highway 高速公路 (区间枚举)
- UVa 10020 - Minimal coverage(区间覆盖)
- 高速公路(Highway,ACM/ICPC SEERC 2005,UVa1615)
- uva 10382区间覆盖贪心
- UVA - 221(区间覆盖)
- 《黑书》uva10020最少区间覆盖(贪心)
- UVALive 2930 Minimizing Maximizer(最小区间覆盖数 DP + 线段树优化)
- UVA 10382 Watering Grass(贪心 区间覆盖问题)
- UVa 10382 - Watering Grass (贪心—区间覆盖)
- UVA 10382 Watering Grass 区间覆盖问题 -
- UVA 10382 - Watering Grass【贪心+区间覆盖问题+高精度】
- UVA 10382 Watering Grass (贪心 + 区间覆盖问题)
- UVA 10020 Minimal coverage 区间覆盖问题 贪心