南阳理工12题
来源:互联网 发布:mac电脑装windows10 编辑:程序博客网 时间:2024/05/18 13:05
#include<iostream>#include<vector>#include<algorithm>#include<cmath>using namespace std;double r, x, y, width, height;class Circle{public:Circle(double x, double r) :x(x), r(r){}double Left() const{if (r*r - height*height / 4<0) return x; return x - sqrt(r*r - (height*height / 4));}double Right() const{ if (r*r - height*height / 4<0) return x; return x + sqrt(r*r - (height*height / 4)); }friend ostream & operator<<(ostream& out, const Circle& circle);private:double x, r;};ostream & operator<<(ostream& out, const Circle& circle){out << circle.x << " " << circle.r;return out;}struct CircleLess{bool operator()(const Circle& c1, const Circle& c2){return c1.Right()<c2.Right();}};int main(){int m;cin >> m;while (m--){int n;vector<Circle> Rs;cin >> n >> width >> height;Rs.reserve(n);while (n--){cin >> x >> r;Rs.push_back(Circle(x, r));}sort(Rs.begin(), Rs.end(), CircleLess());vector<int> choosed;choosed.push_back(-1);double len = 0;try{while (len<width){int last = -1;for (vector<Circle>::size_type i = choosed.back() + 1; i != Rs.size(); i++){if (Rs[i].Left() <= len){//cout<<Rs[i].Left()<<endl;last = i;}}if (last == -1) throw - 1;else{choosed.push_back(last);len = Rs[last].Right();}}cout << choosed.size() - 1 << endl;}catch (...){cout << 0 << endl;}}}
阅读全文
0 0
- 南阳理工12题
- 南阳理工16题
- 南阳理工oj6题
- 南阳理工第五题
- 南阳理工第六题
- 南阳理工第七题
- 南阳理工第八题
- 南阳理工第十题
- 南阳理工14题
- 南阳理工16题
- 南阳理工17题
- 南阳理工18题
- 南阳理工19题
- 南阳理工20题
- 南阳理工29题
- 南阳理工第199题 覆盖问题
- 南阳理工ACM第8题
- 南阳理工ACM 第71题
- 主题和样式
- 安卓车牌识别提供停车场应急方案
- oracle-java程序连接三种方式
- spring_SSH整合之_中文乱码问题
- opencv3_java 图像索贝尔Sobel处理 Imgproc.Sobel
- 南阳理工12题
- H5实现扫一扫(二)
- 自然语言处理相关书籍
- Ubuntu安装和卸载deb包软件
- DBUtils的使用方法
- linux下源码安装官方最新版Python
- JavaScript之同步与异步二-"异步模式"编程的4种方法
- 南阳理工14题
- opencv3_java 提取图像的RGB三原色分割图像Split Core.split