洛谷-P4995-题解

P4995 跳跳点击查看详细题目

这是一只有理想抱负的蛙,技能十项全能。

本题思路很简单,你要尽量耗费多的体力,说明小跳蛙每次都是往远的跳。(太能了)
一开始在地面上,高度h=0.接下来,找到最高的石头,往最高的石头跳。再然后找最矮的石头,反复横跳。直到跳到高度排最中间那个。
洛谷-P4995-题解_第1张图片如图,给出的石头高度2,5,3,1,4.耗费最大体力值为55.
因此,将石头高度排序。再按照反复横跳 得到最大体力值。


#include
using namespace std;

int main()
{
	int a[301]={0};
	int n;
	int q, p;
	
	cin >> n;
	//排序从下标1开始,到n结束
	for(int i = 1; i <= n; i++)
		cin >> a[i];

	sort(a, a+n+1);
	
	q = 1, p = n;
	long long sum = a[p]*a[p];
 	//假设,已经到了最高的山峰。耗费的体力为(最高高度*最高高度)

	while(q < p){
		sum += (a[p]-a[q])*(a[p]-a[q]);
		p--;
		if(q >= p) 
			break;
		sum += (a[p]-a[q])*(a[p]-a[q]);
		q++;
	}
	cout << sum;
	return 0;
}

ok!下一题。

你可能感兴趣的:(练习)