题意:

     给了一些处在x轴上的点,要求我们用长度相等的线段覆盖所有点,线段和线段之间不能重叠,问线段最长可以使多长。

思路:

      一开始一直在想二分,哎!感觉这个题目很容易就往二分上去想,但是其实仔细想想并不是满足单调性的(对于我的方法是不满足单调性的,别的方法有可能可以),一开始想的是不能出现连续的两个不满足,这里的满足就是可以有线段,各种wa,说下正确的思路吧,这个是中午才想出来的,这个题目我们可以贪心,首先要明白,最后的答案只有两种情况,要么是某两个相邻点的距离,要么是某个相邻点距离的一半,所以我们把所有可能都枚举一半,判断是否满足的时候可以用贪心的想法,对于每一个点,要么被左边线段覆盖,要么被右边线段覆盖,我们从左往右跑的话,那么就先判断能不能被左边覆盖,不能的话在判断能不能被右边覆盖,如果都不能那么当前长度就失败了,至于判断的细节很简单,自己想下,想不出来看下下面的代码就知道了。


#include<stdio.h>
#include<algorithm> #define N 51

using namespace
std; double dis[N] ,num[N];
int
mk[N]; int ok(double now ,int n)
{

mk[1] = 1;
for(int
i = 2 ;i < n ;i ++)
{
double
disl = dis[i-1] ,disr = dis[i];
if(
mk[i-1] == 1 && now <= disl || mk[i-1] == 2 && (now == disl || now <= disl / 2))
mk[i] = 1;
else if(
now <= disr) mk[i] = 2;
else return
0;
}
return
1;
} double
maxx(double x ,double y)
{
return
x > y ? x : y;
} int main ()
{
int
n ,i ,t;
scanf("%d" ,&t);
while(
t--)
{

scanf("%d" ,&n);
for(
i = 1 ;i <= n ;i ++)
scanf("%lf" ,&num[i]);
sort(num + 1 ,num + n + 1);
for(
i = 2 ;i <= n ;i ++)
dis[i-1] = num[i] - num[i-1];
double
ans = 0;
for(
i = 1 ;i < n ;i ++)
{
if(
ok(dis[i] ,n))
ans = maxx(ans ,dis[i]);
else if(
ok(dis[i]/2 ,n))
ans = maxx(ans,dis[i]/2);
}

printf("%.3lf\n" ,ans);
}
return
0;
}

hdu4932 小贪心的更多相关文章

  1. hdu4544 优先队列(小贪心)

    题意: 湫湫系列故事--消灭兔子                                                                         Time Limit: ...

  2. 【算法系列学习】HDU 5527 Too Rich贪心

    http://www.cnblogs.com/AOQNRMGYXLMV/p/4934747.html #include<iostream> #include<cstdio> # ...

  3. [ 10.05 ]CF每日一题系列—— 962B贪心和思维?

    Description: 非 * 号的地方可以放A或B,不能AA或BB,一共有a个A,b个B,问你最多放几个 Solution: 1.模拟一下,找连续空位长度,如果长度为奇数,则我可以有一个位置放任意 ...

  4. Codeforces Round #494 (Div. 3) D. Coins and Queries(贪心

    题目链接 题目大意:给你n个物品,第iii个物品价值aia_iai​,询问q次,问你能不能凑出价值为qiq_iqi​的物品. 小贪心吧.从大到小找,能拿就拿就行了. #include<bits/ ...

  5. bzoj 1044 贪心二分+DP

    原题传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1044 首先对于第一问,我们可以轻易的用二分答案来搞定,对于每一个二分到的mid值 我们从l ...

  6. CF 1003D Coins and Queries【位运算/硬币值都为2的幂/贪心】

    Polycarp has n coins, the value of the i-th coin is ai. It is guaranteed that all the values are int ...

  7. bzoj 4245: [ONTAK2015]OR-XOR【按位贪心】

    知道按位贪心但是不知道怎么贪-- 求一个a的异或前缀和s,然后按位从大到小贪心,ans的当前位能为0的条件是s中有>=m个位置这一位为0且没有flag,并且s[n]的这一位为0 如果符合要求,那 ...

  8. Wannafly挑战赛10:A题:小H和迷宫

    题目描述       小H陷入了一个迷宫中,迷宫里有一个可怕的怪兽,血量有N点,小H有三瓶魔法药水,分别可以使怪兽损失a%.b%.c%的血量(之后怪兽的血量会向下取整),小H想合理地运用这三瓶药水,使 ...

  9. bzoj 2165: 大楼【Floyd+矩阵乘法+倍增+贪心】

    1<<i的结果需要是long long的话i是long long是没用的--要写成1ll<<i--我别是个傻子吧 虽然写的是二进制贪心,但是我觉得二分可能更好写吧(但是会慢) ...

随机推荐

  1. 基于云原生DevOps服务自动化部署前端项目学习总结

    本文主要以部署前端Vue项目为例,讲述了如何基于云原生DevOps服务自动化部署前端项目~从开发完成到线上环境,我们只需提交代码即可~ 一.引言 作为一名开发人员,日常工作中我们除了需要负责代码的开发 ...

  2. 面试准备——计算机网络(https)

    一.为什么要提出HTTPS? HTTP的缺点: 明文通信.不加密,可能被窃听. 无身份验证,可能遭遇伪装. 无法证明报文的完整性,可能被篡改. 二.HTTPS = HTTP+加密(防窃听)+认证(防伪 ...

  3. 测试平台系列(3) 给Hello World添加日志

    给Hello World添加日志 回顾 通过上篇内容,我们已经使用「Flask」完成了我们的第一个接口.我们可以看到,使用「Flask」来编写接口是十分简单的.那么接下来,我们丰富一下上面的例子. 需 ...

  4. WPF 基础 - ControlTemplate

    常用 ControlTemplate 的地方:Control 的 Template 属性 运用效果举例:穿着 CheckBox 外衣的 ToggleButton,披着温度计的 ProgressBar. ...

  5. 计算异质性H值(运用arcgis和Python进行区域分析)

    最近需要对ecognition分割结果进行统计分析,以此来进一步判断其分割结果中的欠分割和过分割对象,在看了一篇论文后,发现了可以用一个参数H来判断每个切割对象的异质性,由于此方法需要用到arcgis ...

  6. C++11正则表达式

  7. Centos7安装maven详情以及配置

    一.maven安装: 1.获取maven下载地址: 查询maven最新版本地址:https://maven.apache.org/download.cgi 当前最新版本为maven 3.6.3    ...

  8. springboot+druid报错log4j:WARN No appenders could be found for logger (druid.sql.Connection). log4j:WARN Please initialize the log4j system properly.

     解决方案:新建文件log4j.properties log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.Con ...

  9. docker部署nodejs项目应用

    之前笔者弄了一套nestjs项目放在自己服务器上,并用pm2管理进程. 现在要把pm2停止,尝试一下用docker容器,那么首先要安装docker 一.安装docker 由于笔者服务器的系统是cent ...

  10. 有了CMDB,为什么还需要应用配置管理?

    有了CMDB,为什么还需要应用配置管理? 你不妨先停下来,思考一下这个问题. 我抛出的观点是: CMDB是面向资源的管理,应用配置是面向应用的管理. 请注意,这里是面向"资源",不 ...