题解 【洛谷P4995】跳跳!
一看题目名字,下意识地认为DP。
打开题目,发现是一道水的贪心,和DP没一分钱关系(毕竟是洛谷最水月赛的T2)。
废话不多说。
看完题面,首先想到排序。要将乱序的石头高度变为有序,才能更好地想题。
C++排序代码:sort(a+1,a+1+n);
(STL大法好!)
因为要使耗费的体力值最大,所以距离肯定要最长。
又因为地面高度是0,所以肯定要跳到最高的一块石头上才能耗费最多的体力值。
跳到最高的石头上后,为了耗费更多的体力值,就应该跳到距离这块石头最远的石头上,也就是除地面外最矮的一块石头。
跳到除地面外最矮的石头上后,为了耗费更多的体力值,就应该跳到第二高的石头上。
…………以此类推
注意:虽然n很小,但是石头的高度很高,所以应该用long long类型(比赛时我被坑了……),就有了OIer最爱说的一句话:十年OI一场空,不开long long见祖宗。
(扯多了……)
于是我们就有了下列代码:
#include<bits/stdc++.h>//万能头文件,训练时可以用,但在比赛时不推荐使用,常常出现一些莫名其妙的错误
using namespace std;//标准名字空间
long long n/*石头块数*/,a[]/*每一块石头的高度*/,i,j,k,l,s/*计算体力值*/;
int main(){
scanf("%lld",&n);//输入石头的块数
for(i=;i<=n;i++)
scanf("%lld",&a[i]);//输入每个石头的高度
sort(a+,a++n);//将石头的高度从小到大排序
s=s+a[n]*a[n];//体力值首先应该加上跳到最高的石头上的体力值
j=;//小跳蛙将要跳到的石头
k=n;//小跳蛙当前所在的石头
while(j<k){//如果当前石头比将要跳到的石头高
l++;//次数加1
s=s+(a[k]-a[j])*(a[k]-a[j]);//加上此次跳跃耗费的体力值
if(l%==)k--;//如果跳了奇数次,j就变成当前所在石头,下一个将要跳到的石头为k-1
else j++;//否则,k就是当前所在石头,下一个将要跳到的石头为j+1
}
printf("%lld\n",s);//输出最大体力值
return ;
}
那一个while循环是这个代码的关键,一定要弄明白!
题解 【洛谷P4995】跳跳!的更多相关文章
- 洛谷 P4995 跳跳!
思路 贪心 从大到小排序,然后反复横跳,记录两个指针 \(l=1, r=n\),从 \(1\) 跳到 \(n\),再从 \(n\) 跳到 \(2\),然后从 \(2\) 跳到 \(n - 1\)--, ...
- 洛谷P4995 跳跳!题解
求关注,求赞,求评论QAQ 题目:https://www.luogu.org/problemnew/show/P4995 简单描述一下吧,就是说有n块石头,起始可以跳到任何一块上面,接着也是,只不过每 ...
- 题解 洛谷P5018【对称二叉树】(noip2018T4)
\(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...
- 题解 洛谷 P3396 【哈希冲突】(根号分治)
根号分治 前言 本题是一道讲解根号分治思想的论文题(然鹅我并没有找到论文),正 如论文中所说,根号算法--不仅是分块,根号分治利用的思想和分块像 似却又不同,某一篇洛谷日报中说过,分块算法实质上是一种 ...
- 题解-洛谷P5410 【模板】扩展 KMP(Z 函数)
题面 洛谷P5410 [模板]扩展 KMP(Z 函数) 给定两个字符串 \(a,b\),要求出两个数组:\(b\) 的 \(z\) 函数数组 \(z\).\(b\) 与 \(a\) 的每一个后缀的 L ...
- 题解-洛谷P4229 某位歌姬的故事
题面 洛谷P4229 某位歌姬的故事 \(T\) 组测试数据.有 \(n\) 个音节,每个音节 \(h_i\in[1,A]\),还有 \(m\) 个限制 \((l_i,r_i,g_i)\) 表示 \( ...
- 题解-洛谷P4724 【模板】三维凸包
洛谷P4724 [模板]三维凸包 给出空间中 \(n\) 个点 \(p_i\),求凸包表面积. 数据范围:\(1\le n\le 2000\). 这篇题解因为是世界上最逊的人写的,所以也会有求凸包体积 ...
- 题解-洛谷P4859 已经没有什么好害怕的了
洛谷P4859 已经没有什么好害怕的了 给定 \(n\) 和 \(k\),\(n\) 个糖果能量 \(a_i\) 和 \(n\) 个药片能量 \(b_i\),每个 \(a_i\) 和 \(b_i\) ...
- 题解-洛谷P5217 贫穷
洛谷P5217 贫穷 给定长度为 \(n\) 的初始文本 \(s\),有 \(m\) 个如下操作: \(\texttt{I x c}\),在第 \(x\) 个字母后面插入一个 \(c\). \(\te ...
随机推荐
- Java之CheckedException
先来科普一下 CE 到底是什么吧.Java 要求你必须在函数的类型里面声明它可能抛出的异常.比如,你的函数如果是这样: void foo(string filename) throws FileNot ...
- 8组 上课啦(Class BUddy Pro)使用体验
下载上课啦app 进入页面显示的是一个第1周的课表,和可以看到本周为第几周,点击周可以调整第几周显示课表 ,课表内容为整周内容,本周内容一目了然.点击右上角可以进入主设置页面,设置页面可以设置静音模式 ...
- P1422 小玉家的电费(scanf,printf)
题目描述 夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了.小玉家今天收到了一份电费通知单.小玉看到上面写:据闽价电[2006]27号规定,月用电量在 150 千瓦时及以下部分按每千瓦时 ...
- maven的核心概念——仓库
第十章仓库 10.1 分类 [1]本地仓库:为当前本机电脑上的所有Maven工程服务. [2]远程仓库 (1)私服:架设在当前局域网环境下,为当前局域网范围内的所有Maven工程服务. (2)中央仓库 ...
- Linux——基础之vi编辑器,编辑器之神!
VI编辑器是什么? 我们学了怎么多的命令,都是为了我们的linux系统和远程操作的方便,那么我们现在怎么,编辑服务器上的文件和软件呢? 换句话说,就是我们如何通过命令行去完成文本和代码的编写,和系统的 ...
- Java中异步注解@Async的陷阱
或许,你在Java后端添加异步过程时会这样处理,然后摇摇大摆.灰溜溜地闪,而实际的运行结果却并不是我们期望的那样.那么,现在就将试验结果记录如下,以便少走弯路. (一)在Controller层的公开接 ...
- IIS7配置asp程序
Windows 中IIS7.IIS7.5是默认不安装的,所以在安装完Windows Vista/windows 7/windows 2008之后如果需要安装IIS7/iis7.5的话,就要自己动手了. ...
- [PAT] A1022 Digital Library
[题目大意] 给出几本书的信息,包括编号,名字,出版社,作者,出版年份,关键字:然后给出几个请求,分别按照1->名字,2->出版社等对应信息查询符合要求的书的编号. [思路] 模拟. [坑 ...
- PTA 简单计算器(C语言)
模拟简单运算器的工作.假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算. 输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数.遇 ...
- ArcScene 创建三维模型数据
1. 拉伸 添加面元素图层 在图层上右键----属性 , 设置拉伸值,可以输入固定值或者选择字段值. 2. 导入 3DMAX 的 3ds 文件,和 Google SketchUp 的skp文件, ...