HDU 4932 Miaomiao's Geometry
来源:互联网 发布:sqlserver教程百度云 编辑:程序博客网 时间:2024/05/16 11:22
BC的一道题 做比赛的时候想来想去也没有想出什么样例的结果是浮点值的 所以输出我用了最耿直的 .000 现在想想真是不忍直视
题意 :给你一条线上的很多点 现在要求用长度相同的线段去覆盖所有的点 这边有两个要求 这些点只能被线段的两个端点所覆盖 两两线段之间不能相交 ( 除去端点)问最大的满足条件的线段长度是多少
解题思路: 先给所有点从小到大排序 然后记录两个点之间的差值和这个差值的一半 然后只要依次去填充看是否满足条件 就行了 找出最大值 我这边直接是用了set排除所有重复值并且从大到小去判断 满足了就直接break
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<set>#include<vector>#include<algorithm>using namespace std;#define eps 1e-8set<double> s;double num[60];int n;bool judge(double val){ bool last = false; for(int i = 1;i < n -1;i++){ if(!last && num[i] - num[i - 1] >= val) last = false; else if(last && fabs(num[i - 1] + val - num[i]) == 0) last = false; else if(last && num[i] - num[i - 1] - 2*val >= 0 ) last = false; else if( num[i + 1] - num[i] >= val) last = true; else return false; } return true;}int main(){ int T; scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i = 0;i < n;i++) scanf("%lf",&num[i]); sort(num,num + n); s.clear(); for(int i = 1;i < n;i++){ s.insert(num[i] - num[i -1]); s.insert((num[i] - num[i - 1]) / 2.0); } double ans = 0.000; set<double>::iterator it; for(it = s.end();it != s.begin();it--){ if(judge(*it)){ ans = *it;break; } } printf("%0.3lf\n",ans); } return 0;}
0 0
- HDU 4932 Miaomiao's Geometry
- hdu 4932 Miaomiao's Geometry
- HDU 4932 Miaomiao's Geometry
- HDU-4932-Miaomiao's Geometry
- hdu 4932 Miaomiao's Geometry
- HDU 4932 Miaomiao's Geometry
- HDU-4932-Miaomiao's Geometry
- hdu 4932Miaomiao's Geometry
- HDU 4932 Miaomiao's Geometry
- 【HDU】4932 Miaomiao's Geometry 暴力
- hdu 4932 Miaomiao's Geometry(暴力)
- HDU 4932 Miaomiao's Geometry(推理)
- HDU 4932 Miaomiao's Geometry 暴力
- hdu 4932 Miaomiao's Geometry 暴力枚举
- 【贪心】HDU 4932 Miaomiao's Geometry
- HDU—— 4932 Miaomiao's Geometry
- HDU-4932-Miaomiao's Geometry【暴力枚举】
- hdu 4932 Miaomiao's Geometry(暴力枚举)
- 理解HTTP消息头【很完整,例子也很丰富】
- WampServer开机自动启动设置
- (转载)使用XmlSerializer序列化可空属性
- makefile基础
- java HashMap的工作原理
- HDU 4932 Miaomiao's Geometry
- oracle index(索引)
- 电商全渠道秩序维护 八爪鱼大数据来帮忙
- XML 查询、添加、修改、删除
- oracle exp-00011的解决办法
- 职场“狡兔死走狗烹”的破解之道
- linux命令后台运行
- Intent用法实例
- android内存泄露分析-MAT