uva 1615 (区间选点)
2016-01-24 18:14
357 查看
这是一个区间选点问题。
所谓的区间选点问题,就是给定一些区间让你选最少的点使任何一个区间都至少含有一个点。
这可以用贪心策略来求解。
所谓的区间选点问题,就是给定一些区间让你选最少的点使任何一个区间都至少含有一个点。
这可以用贪心策略来求解。
#include <cstdio> #include <algorithm> #include <cmath> #define eps 1e-7 using namespace std; const int maxn = 10000+10; struct village { double o,l; bool operator < (const village& b) const { return l<b.l || fabs(l-b.l)<=eps && o > b.o; } }a[maxn]; int main() { int L, D; double u, v, t; int n; while(scanf("%d%d%d",&L,&D,&n) != EOF) { for(int i(0); i < n; i++) { scanf("%lf%lf",&u,&v); t = sqrt(D*D - v*v); a[i].o = max(u-t,0.0); a[i].l = min(u+t,(double)L); } sort(a,a+n); //for(int o=0;o<n;o++) printf("(%lf,%lf) ",a[o].o,a[o].l); int cnt(1); double pos = a[0].l; for(int i(0); i < n; i++) { if(pos<a[i].o) {pos=a[i].l;cnt++;} } printf("%d\n",cnt); } }
相关文章推荐
- 1.一些 贪心算法 的简单思维题:
- 贪心算法——字典序最小问题
- 贪心算法——区间调度问题
- Jump Game I,II 贪心
- Wildcard Matching
- 贪心法实现无向图的划分 代码
- 贪心题目循环和控制台折行
- HDOJ 1009
- 【解题报告】【USACO】酸奶工厂
- 【解题报告】【】交谊舞
- POJ 1328
- Best Cow Line
- POJ2377 Bad Cowtractors
- 贪心 hdu 1003
- 最大容器
- 满足和为定值的两个数或多个数
- Codeforces Round #300
- HUD1052 __ P2 1002 __ Tian Ji -- The Horse Racing
- 2015年国家集训队测试 BZOJ3816矩阵变幻
- poj 1328