10382 - Watering Grass-----------(题目简单)卡精度啊!!wa了8次!
来源:互联网 发布:java工程师武汉工资 编辑:程序博客网 时间:2024/04/29 06:22
精度这个东西好神奇~如果判断一个double的数大于0,直接让这个double跟一个很小的数的负数比较大小~!!!!!!!!!
#include<cstdlib>#include<iostream>#include<cstdio>#include<cmath>#include<set>#include<cstring>#include <algorithm>#define N 10005#define MIN 1e-11#define M 1000001using namespace std;struct S{ double a,b;};S s[N];int n;double l,w;bool cmp(S x, S y){ return x.a < y.a;}int main(){#ifndef ONLINE_JUDGE freopen("ex.in","r",stdin);#endif while(scanf("%d%lf%lf",&n,&l,&w)!=EOF) { w/=2;// double x,ra,xx; for(int i=0; i<n; i++) { scanf("%lf%lf",&x,&ra); if(ra<=w) { s[i].a=-1; s[i].b=-1; continue; } xx=sqrt(ra*ra-w*w); s[i].a=x-xx; s[i].b=x+xx; } sort(s,s+n,cmp); double f,r=0; int i=0; for(; i<n; i++) { if(s[i].b>0) { f=s[i].a; break; } } int flag=0; if(f>0) flag=1; int cnt=0; double lg=0; while(r<l&&!flag) { flag=1;// for(;i<n&&r-s[i].a>MIN; i++)//错了 for(;i<n&&r-s[i].a>-MIN; i++)//-MIN换成MIN就错了 { if(s[i].b>lg) { lg=s[i].b; flag=0; } } r=lg; cnt++; } if(!flag&&lg>=l)//lg>=l别忘 { printf("%d\n",cnt); } else printf("-1\n"); } return 0;}
- 10382 - Watering Grass-----------(题目简单)卡精度啊!!wa了8次!
- 10382 - Watering Grass(水题)
- uva 10382 - Watering Grass(贪心)
- UVA 10382 Watering Grass(区间嵌套)
- UVa 10382 - Watering Grass(贪心算法)
- uva 10382 Watering Grass(贪心)
- UVA - 10382 Watering Grass(贪心)
- UVA 10382 Watering Grass (贪心)
- UVa 10382 Watering Grass
- UVa 10382 - Watering Grass
- UVa 10382 - Watering Grass
- uva 10382 - Watering Grass
- uva 10382 - Watering Grass
- Uva 10382 - Watering Grass
- UVAOJ--10382 Watering Grass
- 10382 - Watering Grass
- Uva-10382-Watering Grass
- UVA 10382 Watering Grass
- 高性能WEB开发 - HTTP服务器篇
- 10815 - Andy's First Dictionary
- <<Git图解>>笔记
- 644 - Immediate Decodability
- 嵌入式应用中CGI编程中POST、GET及环境变量详解
- 10382 - Watering Grass-----------(题目简单)卡精度啊!!wa了8次!
- 10115 - Automatic Editing
- ORA-00918
- 初识bool
- 拷贝构造函数
- win7系统下删除wubi安装的ubuntu启动项
- POJ 2533 Longest Ordered Subsequence (LOS)
- 字符串的hash
- 算法的力量