洛谷4995 跳跳!
标签:贪心
题目
题目传送门
题目描述
你是一只小跳蛙,你特别擅长在各种地方跳来跳去。
这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 i i i 块的石头高度为 h i h_i hi,地面的高度是 h 0 = 0 h_0 = 0 h0=0。你估计着,从第 i i i 块石头跳到第 j j j 块石头上耗费的体力值为 ( h i − h j ) 2 (h_i - h_j) ^ 2 (hi−hj)2,从地面跳到第 i i i 块石头耗费的体力值是 ( h i ) 2 (h_i) ^ 2 (hi)2。
为了给小 F 展现你超级跳的本领,你决定跳到每个石头上各一次,并最终停在任意一块石头上,并且小跳蛙想耗费尽可能多的体力值。
当然,你只是一只小跳蛙,你只会跳,不知道怎么跳才能让本领更充分地展现。
不过你有救啦!小 F 给你递来了一个写着 AK 的电脑,你可以使用计算机程序帮你解决这个问题,万能的计算机会告诉你怎么跳。
那就请你——会写代码的小跳蛙——写下这个程序,为你 NOIp AK 踏出坚实的一步吧!
输入输出格式
输入格式
输入一行一个正整数 n n n,表示石头个数。
输入第二行 n n n 个正整数,表示第 i i i 块石头的高度 h i h_i hi。
输出格式
输出一行一个正整数,表示你可以耗费的体力值的最大值。
输入输出样例
输入样例#1
2
2 1
输出样例#1
5
输入样例#2
3
6 3 5
输出样例#2
49
说明
样例解释
两个样例按照输入给定的顺序依次跳上去就可以得到最优方案之一。
数据范围
对于 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n,有 0 < h i ≤ 1 0 4 0 < h_i \leq 10 ^ 4 0<hi≤104,且保证 h i h_i hi 互不相同。
对于 10 % 10\% 10% 的数据, n ≤ 3 n \leq 3 n≤3;
对于 20 % 20\% 20% 的数据, n ≤ 10 n \leq 10 n≤10;
对于 50 % 50\% 50% 的数据, n ≤ 20 n \leq 20 n≤20;
对于 80 % 80\% 80% 的数据, n ≤ 50 n \leq 50 n≤50;
对于 100 % 100\% 100% 的数据, n ≤ 300 n \leq 300 n≤300。
分析
题目最后一句毒奶真的神2333
贪心策略:排序后,选择当前差值最大的两个石头跳
code
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<algorithm>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define dep(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
#define mem(x,num) memset(x,num,sizeof x)
#define reg(x) for(int i=last[x];i;i=e[i].next)
using namespace std;
inline ll read(){ll f=1,x=0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
//**********head by yjjr**********
ll n,a[306],ans;
int main()
{n=read();rep(i,1,n)a[i]=read();sort(a+1,a+1+n);int head=0,tail=n;while(head<tail){ans+=(a[head]-a[tail])*(a[head]-a[tail]);head++;ans+=(a[head]-a[tail])*(a[head]-a[tail]);tail--;}cout<<ans<<endl;return 0;
}
洛谷4995 跳跳!相关推荐
- 贪心——洛谷P4995 跳跳!
洛谷P4996 跳跳! 题目描述\color{blue}题目描述题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ...
- 贪心算法——洛谷(P4995)跳跳!
很简单的一道题,就是排序之后贪心+模拟: 先将台阶的高度从小到大排序,注意0也算,但是不是输入进去的: 每次从距离 最小和最大值之间跳跃, 从最小跳到最大之后,最大值不变,最小的下标+1,从最大跳到最 ...
- P4995 跳跳! java 洛谷
P4995 跳跳! java 洛谷 一.题目描述: 题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ii 块的石 ...
- 「LuoguP4995」「洛谷11月月赛」 跳跳!(贪心
题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ii 块的石头高度为 h_ihi,地面的高度是 h_0 = 0 ...
- 洛谷-P4995-跳跳
跳跳! - 洛谷 解题思路: 1.由题意得,要求所耗费的体力最大值,体力值的计算 公式给出,可以判断,两个石头的高度差越大即越 好,所以这里的贪心思想是总要跳到和当前石头高度 差最大的那个石头 2. ...
- 洛谷11月月赛(284pts rank85)
https://www.luogu.org/contestnew/show/12006 我是比赛完后在去写的 这是我第一次打洛谷月赛,之前一次是比赛完才去看而且写了第一题就没写后面的了 284分,太水 ...
- 洛谷-题解 P2672 【推销员】
独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...
- 洛谷 P1142 轰炸
洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...
- 洛谷 P1387 最大正方形
P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...
最新文章
- MySQL番外篇:一条SQL查询语句是如何执行的?
- java 转发上传文件_Java 发送http请求上传文件功能实例
- django_rest_framework之GenericAPIView(三)
- 一个课程,11个项目!爬虫初体验,快来!
- 解决: Incorrect username or password, or no permission ( Docker 方式运行 Nexus3 登陆密码不为 admin123 、重置登陆密码)
- android自动化持续集成,Android系统的持续集成自动化测试框架的研究与实践
- 实用的powershell小技巧,持续更新……
- 单片机项目开发一般步骤
- PHP设计模式——备忘录模式
- Sql查询出数据表中所有重复的数据
- FPGA SPI协议
- win10无线网 服务器,win10专业版wifi变成地球怎么办_win10 wifi图标变成小地球无法连接网络如何解决...
- 9.2 5道半leetcode+2verilog+ques lists
- 高颜值挂脖式运动蓝牙耳机盘点,五款3D环绕高音质蓝牙耳机测评分享
- HTML5游戏 看你有多“色” 开发
- connect的中文意思是什么_connect是什么意思
- 【小白目标检测】手把手教你做视频中的实时目标检测(基于Pelee算法)
- python爬虫超时重试_python爬虫怎么处理异常和超时?
- ios 内购开发,passbook,蓝牙
- java 将对象写入链表_在Java中,_____类可用于创建链表数据结构的对象。