Poj 1328
来源:互联网 发布:openwrt 网络设置 编辑:程序博客网 时间:2024/06/07 05:55
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<algorithm>using namespace std;int n;double d;typedef struct Postion{ double left, right;};bool cmp(Postion p1, Postion p2){ if((p1.left < p2.left) || (p1.left == p2.left && p1.right < p2.right)) //if(p1.left < p2.left) return true; else return false;}Postion Pos[1010];void solve(){ Postion temp; temp = Pos[0]; int ans = 1; // for(int i = 0; i < n; i++) // cout << Pos[i].left << " " << Pos[i].right << endl; for(int i = 1; i < n; i++) { if(Pos[i].left > temp.right) { temp = Pos[i]; ans++; } else if(Pos[i].right < temp.right) { temp = Pos[i]; } } cout << ans << endl;}/*void solve(){ int ans = 1; int index = 0; double Right = Pos[0].right; while(Right < Pos[n-1].left) { while(Pos[index].left <= Right) { if(Pos[index].right < Right) Right = Pos[index].right; index++; } ans++; Right = Pos[index].right; } cout << ans << endl; cout << endl;}*/int main(){ int kase = 0; while(scanf("%d %lf", &n, &d) && n && d) { bool flag = true; for(int i = 0; i < n; i++) { double x, y; scanf("%lf %lf", &x, &y); if(fabs(y) > d) flag = false; //cout << fabs(y) << " " << d << endl; double len = sqrt(d*d - (y*y)); Pos[i].left = x - len; Pos[i].right = x + len; } sort(Pos, Pos+n, cmp); cout << "Case " << ++kase << ": "; if(flag) solve(); else cout << "-1" << endl; } return 0;}
阅读全文
0 0
- poj 1083 & poj 1328
- POJ 1328
- poj 1328
- poj 1328
- POJ 1328
- poj 1328
- POJ 1328
- POJ 1328
- POJ--1328
- poj-1328
- POJ 1328
- POJ 1328
- poj 1328
- poj 1328
- POJ 1328
- POJ 1328
- POJ 1328
- poj 1328
- qrencode交叉编译
- 在 wpf 中使用 main 方法
- Instance segmentation: MNC、FCIS、Mask R-CNN
- Android源码解析之日志系统驱动程序Logger
- 柜 safe
- Poj 1328
- 链接测试服.ssh文件
- GBDT(MART) 迭代决策树入门教程 | 简介
- 《第一篇 从linux 0.11系统初始化main.c的fork()函数调用分析内核源码》
- 环形缓冲器(转)
- RedisTemplate访问Redis数据结构(五)——ZSet
- Django REST framework-API指南01-Requests 原创翻译
- 热门技术
- 快速排序算法的实现(QuickSort)