二分 例题3
2015-08-01 09:55
288 查看
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u
Submit Status Practice HDU 4932
Description
There are N point on X-axis . Miaomiao would like to cover them ALL by using segments with same length.
There are 2 limits:
1.A point is convered if there is a segments T , the point is the left end or the right end of T.
2.The length of the intersection of any two segments equals zero.
For example , point 2 is convered by [2 , 4] and not convered by [1 , 3]. [1 , 2] and [2 , 3] are legal segments , [1 , 2] and [3 , 4] are legal segments , but [1 , 3] and [2 , 4] are not (the length of intersection doesn't equals zero), [1 , 3] and [3 , 4] are not(not the same length).
Miaomiao wants to maximum the length of segements , please tell her the maximum length of segments.
For your information , the point can't coincidently at the same position.
Input
There are several test cases.
There is a number T ( T <= 50 ) on the first line which shows the number of test cases.
For each test cases , there is a number N ( 3 <= N <= 50 ) on the first line.
On the second line , there are N integers Ai (-1e9 <= Ai <= 1e9) shows the position of each point.
Output
For each test cases , output a real number shows the answser. Please output three digit after the decimal point.
Sample Input
3
3
1 2 3
3
1 2 4
4
1 9 100 10
Sample Output
1.000
2.000
8.000
Hint
View Code
Submit Status Practice HDU 4932
Description
There are N point on X-axis . Miaomiao would like to cover them ALL by using segments with same length.
There are 2 limits:
1.A point is convered if there is a segments T , the point is the left end or the right end of T.
2.The length of the intersection of any two segments equals zero.
For example , point 2 is convered by [2 , 4] and not convered by [1 , 3]. [1 , 2] and [2 , 3] are legal segments , [1 , 2] and [3 , 4] are legal segments , but [1 , 3] and [2 , 4] are not (the length of intersection doesn't equals zero), [1 , 3] and [3 , 4] are not(not the same length).
Miaomiao wants to maximum the length of segements , please tell her the maximum length of segments.
For your information , the point can't coincidently at the same position.
Input
There are several test cases.
There is a number T ( T <= 50 ) on the first line which shows the number of test cases.
For each test cases , there is a number N ( 3 <= N <= 50 ) on the first line.
On the second line , there are N integers Ai (-1e9 <= Ai <= 1e9) shows the position of each point.
Output
For each test cases , output a real number shows the answser. Please output three digit after the decimal point.
Sample Input
3
3
1 2 3
3
1 2 4
4
1 9 100 10
Sample Output
1.000
2.000
8.000
Hint
For the first sample , a legal answer is [1,2] [2,3] so the length is 1. For the second sample , a legal answer is [-1,1] [2,4] so the answer is 2. For the thired sample , a legal answer is [-7,1] , [1,9] , [10,18] , [100,108] so the answer is 8. 代码: 为什么要加后面那一段再判一下呢?删掉就错了呢?为什么呢?我也不知道啊,是吧?
#include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> using namespace std; const double inf=1e9+7; int n; double a[56]; bool C(double x) { int i; double ab=a[1]; for(i=2;i<n;i++) { if(a[i]-ab>=x) { ab=a[i]; } else { if(a[i+1]-a[i]<x) return false; else if(a[i+1]-a[i]==x) { ab=a[i+1]; i++; } else if(a[i+1]-a[i]>x) { ab=a[i]+x; } } } return true; } int main() { int T; int i,j; scanf("%d",&T); while(T--) { scanf("%d",&n); for(i=1;i<=n;i++) scanf("%lf",&a[i]); sort(a+1,a+n+1); double lb=0,ub=inf; for(i=1;i<=100;i++) { double mid=(lb+ub)/2.0; if(C(mid)) lb=mid; else ub=mid; } for(i=1;i<n;i++) if(C(a[i+1]-a[i]) && (a[i+1]-a[i])>lb) lb=a[i+1]-a[i]; printf("%.3lf\n",lb); } return 0; }
View Code
相关文章推荐
- 打印二叉树中一个节点的所有祖先节点
- 黑马程序员——自学总结(九)正则表达式
- UML 类图基本图示法
- 读取properties文件
- 无法原谅自己的退步
- 二分 例题2
- 读取properties文件
- Android studio 重置 DDMS面板布局
- 二分 例题1
- 设计模式-前言
- HDU 4985 Little Pony and Permutation(简单模拟)
- Handler的用法大汇总
- 软件工程(8-10章)
- poj 3264 Balanced Lineup
- Can you find it?
- Ueditor上传图片到本地改造到上传图片到云存储
- C语言——原码、反码、补码、数据类型取值范围
- Shiro学习(18)并发人数限制
- Ajax 局部刷新
- POJ 3258 River Hopscotch