南阳理工OJ_题目12 喷水装置(二)
2014-05-02 23:13
225 查看
#include <iostream> #include <cmath> #include <cstdlib> using namespace std; int cmp(const void *a, const void *b); struct data { double l; double r; }; int main() { int T; int n, h, w; data a[10010]; cin >> T; while(T--) { int x, r; //int k = 0; cin >> n >> w >> h; for(int i = 1; i <= n; i++) { cin >> x >> r; if(2*r <= h) a[i].l = a[i].r = x; else { //k++; a[i].l = x - sqrt(r*r - h*h/4.0); a[i].r = x + sqrt(r*r - h*h/4.0); //if(a[k].l < 0) //a[k].l = 0; //if(a[k].r >w) //a[k].r = w; } } int flag = 1; double cur = 0; int sum = 0; qsort(a+1, n, sizeof(a[0]), cmp); while(cur < w) { double t = cur; for(int i = 1; i <= n && cur >= a[i].l; i++) { t = t > a[i].r ? t : a[i].r; } if(cur == t) { flag = 0; break; } else { cur = t; sum++; } } if(flag == 1) cout << sum << endl; else cout << 0 << endl; } } int cmp(const void *a, const void *b) { if( ((data *)a)->l > ((data *)b)->l ) return 1; else return -1; }
相关文章推荐
- [转]喷水装置 南阳理工学院 OJ 题目 12
- 喷水装置(二)(南阳oj12)(贪心之区间覆盖问题)
- NYOJ 题目12喷水装置(二)
- 南阳理工学院OJ_12_喷水装置(二)
- 南阳oj 题目6 喷水装置(一)
- 【南理oj】12 - 喷水装置(二)(贪心,好题)
- 南阳oj 12 喷水装置(二)
- 南阳 oj 贪心 题目6 喷水装置(一)
- nyoj 题号12 喷水装置(二)——南阳oj
- nyoj 题号12 喷水装置(二)——南阳oj
- 【南阳理工oj】喷水装置(一)(贪心)
- NYOJ 题目12 喷水装置(二) 最小区间覆盖问题
- 南阳理工 贪心 12 喷水装置(二)
- 题目12:喷水装置(二)
- nyoj 题目12:喷水装置(二)贪心算法
- 南阳理工OJ_题目305 表达式求值
- NYOJ--12--喷水装置(二)
- nyoj-6-12-喷水装置
- 南阳理工OJ_题目745 蚂蚁的难题(二)&&题目983 首尾相连数组的最大子数组和
- NYOJ 12 喷水装置(二)( 贪心)