hdu 4932 /bestcoder B题 #4 /思维题
题意:给一个数列(整数),用一些不相交的区间去覆盖(只能是用端点去覆盖,端点可以交)。而且区间出度相等。求最大区间长度。
开始一下就敲了,枚举每个区间长度,判断合法,更新最大。但是后来一看小数,感觉不行,改为二分,后来还是挂了。。。
赛后才知道,二分的时候,答案必需要满足单调性啊,这里小的数据不行,大的数据可以行!如 0 1 5 6 10, 3不行,4行。
后来才知道,枚举时,每个差值的一半也是可以的:仔细想想很容易证明。(水,坑)
#include<iostream>
#include<vector>
#include<cstdio>
#include<algorithm>
using namespace std;
vector<int>v; int n;
bool ok(double tmax)
{
int fl=-1;
for(int j=1;j<n-1;j++)
{
if(fl==-1) //之前的放在前
{
if(v[j]-tmax<v[j-1]) //放前面不行,放后面:
{
if(v[j]+tmax<=v[j+1]) //放后面
{
fl=1;
if(v[j]+tmax==v[j+1]) //下一个免了
{
j++;
fl=-1;
}
}
else //否则不行
return 0;
}
else //放前面
fl=-1;
}
else //之前的在后面,
{
if(v[j]-tmax<v[j-1]+tmax) //放前面放不来
{
if(v[j]+tmax<=v[j+1])
{
fl=1;
if(v[j]+tmax==v[j+1])
{
j++;
fl=-1;
}
}
else
{
return 0;
}
}
else
{
fl=-1;
}
}
} return 1;
}
vector<double>dis;
int main()
{
int T;
cin>>T;
while(T--)
{
cin>>n;
int tx=0;
v.clear();
dis.clear();
for(int i=0;i<n;i++)
{
cin>>tx;
v.push_back(tx);
}
sort(v.begin(),v.end());
for(int i=0;i<n-1;i++)
{
double d=v[i+1]-v[i];
dis.push_back(d);
dis.push_back(d/2.0);
}
sort(dis.begin(),dis.end());
for(int i=dis.size()-1;i>=0;i--)
{
if(ok(dis[i]))
{
printf("%.3lf\n",dis[i]);
break;
}
} }
return 0;
}
hdu 4932 /bestcoder B题 #4 /思维题的更多相关文章
- BZOJ 3097: Hash Killer I【构造题,思维题】
3097: Hash Killer I Time Limit: 5 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 963 Solved: 36 ...
- HDU 5122 K.Bro Sorting(模拟——思维题详解)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5122 Problem Description Matt's friend K.Bro is an A ...
- HDU 6205 2017沈阳网络赛 思维题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6205 题意:给你n堆牌,原本每一堆的所有牌(a[i]张)默认向下,每次从第一堆开始,将固定个数的牌(b ...
- hdu 5284 BestCoder Round #48 ($) 1001 水题 *
题意:看一个字符串中是否包含顺序的 w y h ,字符之间可以有其他字符,并且如果有多个连续的vv,则可以看做一个w 比较水,直接看代码 #include<cstdio> #incl ...
- 2016女生赛 HDU 5710 Digit-Sum(数学,思维题)
Digit-Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total S ...
- hdu 4932 BestCoder Round #4 1002
这题真是丧心病狂,引来今天的hack狂潮~ Miaomiao's Geometry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65 ...
- 【模拟8.01】matrix(DP杂题,思维题)
很神的题,感谢lnc大佬的指点. 先设1-LL[i]统称左区间,RR[i]-m为右区间 用L[i]统计从1-i列,出现的左区间端点的前缀和,R[i]是右区间.... f[i][j]中j表示当前在第i列 ...
- 辣些数据结构的思维题(思维题好难一个都不会TAT)
洛谷P1268 树的重量 我觉得难点在于把每个叶子节点想象成分出来的叉 然后如果c是a--b这条边上分出来的,可以通过Dab,Dca,Dcb算出分叉边的长度, 长度=(Dac+Dbc-Dab)/2 怎 ...
- HDU 1029 Ignatius and the Princess IV / HYSBZ(BZOJ) 2456 mode(思维题,~~排序?~~)
HDU 1029 Ignatius and the Princess IV (思维题,排序?) Description "OK, you are not too bad, em... But ...
随机推荐
- MySQL的GTID复制与传统复制的相互切换
MySQL的GTID复制与传统复制的相互转换 1. GTID复制转换成传统复制 1.1 环境准备 1.2 停止slave 1.3 查看当前主从状态 1.4 change master 1.5 启动主从 ...
- GTX 750等低配显卡如何玩转Deepfakes?
这里说的Deepfakes软件还是DeepFaceLab,人工智能换脸,是使用深度学习方法来实现的.而深度学习程序对电脑配置要求是非常高的,尤其是跑模型这个环节.很多低配电脑,根本就跑步起来.比如像G ...
- python标准输入输出
input() 读取键盘输入 input() 函数从标准输入读入一行文本,默认的标准输入是键盘. input 可以接收一个Python表达式作为输入,并将运算结果返回. print()和format( ...
- w3resource_MySQL练习: Aggregate_functions
w3resource_MySQL练习题:Aggregate_functions 1. Write a query to list the number of jobs available in t ...
- http请求原理
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line).请求头部(header).空行和请求数据四个部分组成,下图给出了请求报文的一般格式. 请求行 HTTP响应 ...
- kettle-单表增量同步
目标:利于kettle实现单表增量同步,以时间为判断条件 背景:源表:db1.q1 (2w条数据) 目标表:db2.q2(0条数据) 表结构: CREATE TABLE `q1` ( `ID` bi ...
- 《鸟哥的Linux私房菜》学习笔记(3)——根文件系统
一.Linux目录结构 rootfs:根文件系统,根是"/". 1./boot 系统启动相关的文件,如内核.intrd.以及grub(bootloader) root@hao:~# ...
- CF 219 D:Choosing Capital for Treeland(树形dp)
D. Choosing Capital for Treeland 链接:http://codeforces.com/problemset/problem/219/D The country Tre ...
- 关于面试总结-SQL学生表
前言 每次面试必考SQL,小编这几年一直吃SQ的亏,考题无非就是万年不变学生表,看起来虽然简单,真正写出来,还是有一定难度.于是决定重新整理下关于SQL的面试题,也可以帮助更多的人过SQL这一关. 作 ...
- ranorex前一步的操作结果后一步如何调用
if (!TestSuite.Current.Parameters.ContainsKey("Password"))TestSuite.Current.Parameters.Ad ...