HDU 4932 Miaomiao's Geometry

题目链接

题意:给定x轴上一些点(不反复),如今要选一个线段,使得能放进这些区间中,保证线段不跨过点(即线段上仅仅能是最左边或最右边是点),而且没有线段相交,求能放进去的最大线段

思路:推理一下,仅仅有两点之间的线段,还有线段的一半可能符合题意。然后对于每种线段,去推断一下能不能成功放进去。这步用贪心。优先放左边,不行再放右边

代码:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;const int N = 55;
const double eps = 1e-9;
int t, n;
double a[N];bool notless(double a, double b) {if (fabs(a - b) < eps) return true;return a > b;
}bool judge(double len) {int flag = 1;for (int i = 2; i < n; i++) {if (flag && notless(a[i] - a[i - 1], len))continue;else if (flag && a[i] - a[i - 1] < len && notless(a[i + 1] - a[i], len * 2))continue;else if (flag && a[i] - a[i - 1] < len && notless(a[i + 1] - a[i], len)) {if (fabs(a[i + 1] - a[i] - len) >= eps)flag = 0;continue;}else if (!flag && notless(a[i + 1] - a[i], len * 2)) {flag = 1;continue;}else if (!flag && notless(a[i + 1] - a[i], len)) {if (fabs(a[i + 1] - a[i] - len) < eps)flag = 1;continue;}return false;}return true;
}int main() {scanf("%d", &t);while (t--) {scanf("%d", &n);for (int i = 1; i <= n; i++)scanf("%lf", &a[i]);sort(a + 1, a + 1 + n);double ans = 0;for (int i = 1; i < n; i++) {double len = a[i + 1] - a[i];if (judge(len))ans = max(ans, len);len /= 2;if (judge(len))ans = max(ans, len);}printf("%.3lf\n", ans);}return 0;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/zfyouxi/p/4736325.html

HDU 4932 Miaomiao#39;s Geometry(推理)相关推荐

  1. hdu4932 Miaomiao#39;s Geometry (BestCoder Round #4 枚举)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4932 Miaomiao's Geometry Time Limit: 2000/1000 MS (Ja ...

  2. BestCoder4 1002 Miaomiao's Geometry (hdu 4932) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4932 题目意思:给出 n 个点你,需要找出最长的线段来覆盖所有的点.这个最长线段需要满足两个条件:(1 ...

  3. hdu 4932 BestCoder Round #4 1002

    这题真是丧心病狂,引来今天的hack狂潮~ Miaomiao's Geometry Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65 ...

  4. 杭电OJ(HDU)-ACMSteps-Chapter Three-《FatMouse#39; Trade》《今年暑假不AC》《排名》《开门人和关门人》...

    http://acm.hdu.edu.cn/game/entry/problem/list.php?chapterid=1§ionid=3 1.3.1 FatMouse' Trade #include ...

  5. hdu 3509 Buge#39;s Fibonacci Number Problem

    点击此处即可传送 hdu 3509 题目大意:F1 = f1, F2 = f2;; F(n) = a*F(n-1) + b*F(n-2); S(n) = F1^k + F2^k +-.+Fn^k; 求 ...

  6. hdu 5620 KK's Steel(推理)

    Problem Description Our lovely KK has a difficult mathematical problem:he has a N(1≤N≤1018) meters s ...

  7. Hdu 3341 Lost#39;s revenge (ac+自己主动机dp+hash)

    标题效果: 举个很多种DNA弦,每个字符串值值至1.最后,一个长字符串.要安排你最后一次另一个字符串,使其没事子值和最大. IDEAS: 首先easy我们的想法是想搜索的!管她3721..直接一个字符 ...

  8. HDU 4352 XHXJ#39;s LIS(数位dpamp;状态压缩)

    题目链接:[kuangbin带你飞]专题十五 数位DP B - XHXJ's LIS 题意 给定区间.求出有多少个数满足最长上升子序列(将数看作字符串)的长度为k. 思路 一个数的上升子序列最大长度为 ...

  9. [manacher] hdu 3294 Girls#39; research

    题意: 给一个字符x代表真实的a 然后输出的时候转换 然后就是求最长回文子串的串是什么 长度要大于1 思路: 就是裸的manacher,弄清楚下标的转换关系就好了 代码: #include" ...

最新文章

  1. 修改服务器端的访问模式,ftp服务器端 修改主动模式
  2. jd-gui的下载和使用
  3. 如何使用iOS AddressBook
  4. iOS 10 的坑:新机首次安装 app,请求网络权限“是否允许使用数据”(转)
  5. python爬虫爬取大众点评并导入redis
  6. GoldenGate中使用FILTER,COMPUTE 和SQLEXEC命令
  7. 小姐姐给我讲,一听就懂的财务报表
  8. android 粘性view_android - 如何在RecyclerView中制作粘性标头? (有或没有外部库) - SO中文参考 - www.soinside.com...
  9. 扩散模型初探:原理及应用
  10. unity shader可视化工具——Shader Graph
  11. 【自考】-计算机网络原理
  12. 文件名变乱码. 不知道如何恢复呢?
  13. EasyRecovery15永久免费数据恢复软件
  14. 编程分钟转化小时怎么编_贴片机编程教程,编程步骤,编程怎么编
  15. 供应商管理系统SRM
  16. magicbook14能装鸿蒙系统吗,荣耀magicbook14锐龙版评测_magicbook14锐龙版缺点
  17. java和数据库时间类型
  18. APS Interview - Operating System
  19. 【年终总结系列 2021】不变的心态应对变化的环境
  20. python打印大写字母_Python: 打印出大写字符C

热门文章

  1. 早晨有好多学生在买早餐吃,这样好吗?家长不给孩子做饭吗?
  2. 我是个初二学生,想考一中,现在该怎么努力?
  3. 毕业十年,你的收入是怎样的?
  4. 为什么日本人晚上那么晚去居酒屋吃炸鸡喝啤酒,但街上却鲜有胖子?
  5. 如何应对倒戈的员工?
  6. 这年头,千万不要花钱创业
  7. SpringBoot关于@RequestBody请求参数
  8. linux重定向串口打印到telnet
  9. Mybatis_day2_Mybatis的CRUD操作
  10. 移动机器人建图与导航代码实现——1.Hector SLAM