纪中10日T1 2313. 动态仙人掌
纪中10日 2313. 动态仙人掌
(File IO): input:dinosaur.in output:dinosaur.out
题目描述

沙雕游戏……反正我没玩过……
输入

输出

样例输入

数据范围限制

Solution
考试时想的是对的
为什么就是没有分呢?
首先看看仙人掌有几种情况
situation1

两个比较分开的仙人掌……

小恐龙按照这样走(跳),并没有什么特殊操作。这时的最高高度是两个仙人掌中最高的高度。
situation2

两个靠的比较近的仙人掌……

先看第一个,为了高度尽量小,当然选择擦边跳了

但是恐龙只有落地才能跳呀……要是它跳完第一个就落地,再起跳,一定会装上第二个仙人掌的!

所以它只能一次性的跳过两个仙人掌……
求最高点:
设第一个的高度为a,第二个的高度为b,两个之间的距离为c;

标点

解:
因为△ABC是直角等腰三角形
所以AD=DC=a
同理可得:
EG=FG=b
所以AF=AD+DG+GF=a+b+c
延长AB,EF,交于H点

△AHF亦为直角等腰三角形
所以AH=HF=AF/2=(a+b+c)/2
那么就可以把两个仙人掌合成一个更高的了
Code
#include<iostream>//不想OI一场空,千万别用万能头
#include<algorithm>//快排sort()
#include<cstdio>//能不用cin就不用
#include<cstring>
#include<map>
#include<vector>
#define IL inline
using namespace std;
IL void fin(){freopen("dinosaur.in","r",stdin);}
IL void fout(){freopen("dinosaur.out","w",stdout);}
IL void fio()
{
fin();
fout();
} struct node{
double p;
double h;
}din[];
bool cmp(node ta,node tb)
{
return ta.p<tb.p;
}
int n,tp,th,maxn;
double ans=-;
int main()
{
// fio();
cin>>n;
for(int i=;i<n;i++)
{
scanf("%d%d",&tp,&th);
din[i].p=tp;
din[i].h=th;
ans=max(ans,(double)din[i].h);
if(din[i].p-din[i].h<){
cout<<"-1\n";
return ;
}
}
sort(din,din+n,cmp);
int a,b,c;
for(int i=;i<n-;i++)
{
c=din[i+].p+din[i].p;
a=din[i].h;
b=din[i+].h;
if(c>=a+b)
{
ans=max(ans,(double)max(a,b));
}
else
{
ans=max(ans,(a+b+c)/2.0);
din[i+].p=(a+din[i].p+din[i+].p-b)/2.0;
din[i+].h=(a+b+c)/2.0;
}
}
printf("%.1lf",ans);
return ;
}
Code std
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct cly
{
int longn,left,right;
}a[];
double ans;
int n,p[],h[],l,r,i;
bool cmd(cly x,cly y)
{
return x.left<y.left;
}
int main()
{
// freopen("dinosaur.in","r",stdin);
// freopen("dinosaur.out","w",stdout);
cin>>n;
for(i=;i<=n;i++)
{
scanf("%d%d",p+i,h+i);
a[i]=(cly){h[i],p[i]-h[i],p[i]+h[i]};
}
sort(a+,a++n,cmd);
if(a[].left<)
{
cout<<"-1";
return ;
}
l=a[].left;
r=a[].right;
i=;
while(i<n)
{
if(r<=a[i+].left)
{
ans=max(ans,1.0*(r-l)/);
i++;
l=a[i].left;
r=a[i].right;
}
else if(r>=a[i+].right)
{
i++;
}
else
{
i++;
r=a[i].right;
}
}
ans=max(ans,1.0*(r-l)/);
printf("%.1lf",ans);
return ;
}
纪中10日T1 2313. 动态仙人掌的更多相关文章
- 纪中10日T1 2300. 【noip普及组第一题】模板题
2300. [noip普及组第一题]模板题 (File IO): input:template.in output:template.out 时间限制: 1000 ms 空间限制: 262144 K ...
- 纪中17日T1 2321. 方程
纪中17日T1 2321. 方程 (File IO): input:cti.in output:cti.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto ...
- 纪中5日T1 1564. 旅游
1564. 旅游 题目描述 输入N个数,从中选择一些出来计算出总和,问有多少种选法使得和为质数. 输入 第一行一个整数N. 第二行N个整数,表示这N个数的值. 输出 一个整数,表示方案数. 样例输入 ...
- 纪中12日T1 2307. 选择
2307. 选择 (File IO): input:choose.in output:choose.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto Pr ...
- 纪中10日T3 2296. 神殿 bfs
2296. 神殿 (File IO): input:temple.in output:temple.out 时间限制: 1500 ms 空间限制: 524288 KB 具体限制 Goto Prob ...
- 纪中21日T3 2118. 【2016-12-30普及组模拟】最大公约数
纪中21日T3 2118. 最大公约数 (File IO): input:gcd.in output:gcd.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto ...
- 纪中23日c组T2 2159. 【2017.7.11普及】max 洛谷P1249 最大乘积
纪中2159. max 洛谷P1249 最大乘积 说明:这两题基本完全相同,故放在一起写题解 纪中2159. max (File IO): input:max.in output:max.out 时间 ...
- 纪中23日c组T3 2161. 【2017.7.11普及】围攻 斐波那契数列
2161. 围攻 (File IO): input:siege.in output:siege.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto Prob ...
- 洛谷P1880 [NOI1995]石子合并 纪中21日c组T4 2119. 【2016-12-30普及组模拟】环状石子归并
洛谷P1880 石子合并 纪中2119. 环状石子归并 洛谷传送门 题目描述1 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石 ...
随机推荐
- kvm实现快速增量盘模式的克隆脚本
转自:http://zxlwz.blog.51cto.com/6952946/1852424 要求:备份的img磁盘格式只有qcow2格式支持增量盘使用和快照功能当你的一个虚拟机格式是raw格式时,请 ...
- 聊聊CMDB的前世今生
CMDB,Configuration Management DataBase,配置管理数据库,是与 IT 系统所有组件相关的信息库,它包含 IT 基础架构配置项的详细信息. 传统运维思路下的CMDB, ...
- 深入JVM内存区域管理,值得你收藏
JDK和JRE和JVM的关系 JDK(Java Development Kit)是程序开发者用来来编译.调试java程序用的开发工具包 JRE(JavaRuntimeEnvironment,Java运 ...
- 红帽(RedHat8) RHEL8.0系统安装教程(小白都会)
可以去了解一下Red Hat8产品详情:https://www.RedHat.com/zh/enterprise-linux-8 先准备VMware Workstation 15 Pro版本,Red ...
- DOCKER 学习笔记8 Docker Swarm 集群搭建
前言 在前面的文章中,已经介绍如何在本地通过Docker Machine 创建虚拟Docker 主机,以及也可以在本地Windows 创建虚拟主机,也是可以使用的.这一节,我们将继续学习 Docker ...
- Spanner的TrueTime与事务
Spanner的TrueTime与事务 Spanner是谷歌的分布式数据库,发表于著名论文Spanner: Google's Globally-Distributed Database,它创造性的采用 ...
- TensorFlow 中的张量,图,会话
tensor的含义是张量,张量是什么,听起来很高深的样子,其实我们对于张量一点都不陌生,因为像标量,向量,矩阵这些都可以被认为是特殊的张量.如下图所示: 在TensorFlow中,tensor实际上就 ...
- overflow:hidden;zoom:1;外框自适应 [转]
在排页面时,碰到了,外框里的元素用fluid 布局,外框的高度不能适应的问题,查了一下资料,发现了博友的一篇文章,解决了这个问题,现在分享给大家. 解释不到位的请大牛补充~~~~~~ 高度自适应: h ...
- 什么?接口中方法可以不是抽象的「JDK8接口新语法的深度思考」
先赞后看,养成习惯 文本已收录至GitHub开源仓库 Lu_JavaNodes 码云仓库地址Lu_JavaNodes,包含教程涉及所有思维导图,案例代码和后续讲解视频,欢迎Star增砖添瓦. 前言 在 ...
- Nginx 主要应用场景
前言 本文只针对 Nginx 在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得.所以还请见谅,同时欢迎留言交流 ...