洛谷p4994 跳跳(贪心)

Peren ·
更新时间:2024-11-13
· 963 次阅读

题目来源:https://www.luogu.com.cn/problem/P4995

在这里插入图片描述
这个题其实就是一道挺简单的贪心算法,就是讲石头高度排一下序,然后从两头来回跳。
不过这里需要处理一些细节,就是青蛙从前往后和从后往前的两种跳跃,可以设置一个index在1和0之间转换,分别代表向前或者向后跳跃。一开始肯定是跳到最高的上面,然后在往最低的跳,再往第二高的跳,再往第二低的跳······就这样循环往复。
代码如下:

#include using namespace std; int main(){ int n; cin>>n; int a[n]; for(int i=0;i>a[i]; } sort(a,a+n); long long ans=a[n-1]*a[n-1]; int i=0; int j=n-1; int index=1; while(i<=j){ ans+=abs(a[j]-a[i])*abs(a[j]-a[i]); if(index==1){ j--; index=0; } else{ i++; index=1; } } cout<<ans; system("pause"); return 0; }
作者:人约黄昏后。



p4

需要 登录 后方可回复, 如果你还没有账号请 注册新账号