洛谷题目P4995跳跳!

题目来源:https://www.luogu.com.cn/problem/P4995
`
int h[500];
long long int res = 0;

int main() {
int n;cin >> n;
memset(h, 0x3f3f3f, sizeof(h));
for (int i = 1;i <= n;i++) {
cin >> h[i];
}
sort(h + 1, h + 1 + n, greater());
res += (h[1] * h[1]);
int j = 1;
int lun = 2;
for (int i = n;i > j;) {
res += abs(h[j] - h[i]) * abs(h[j] - h[i]);
if (lun % 2 == 0) {
j++;lun++;
}
else {
i--;lun++;
}
}
cout << res;
return 0;
}`
上面是AC代码。。其实也是一道水题,但是稍微卡了一下下,第一次交上去全错,debug发现‘abs(h[j] - h[i])’写成了两个j导致相减恒为零。
第二次交上去错了大约60%的测试点,短暂思考了一下发现h的范围是1-10^4,做平方很有可能爆int,改成long long之后顺利过了。

posted @ 2025-04-19 14:14  yubai111  阅读(11)  评论(0)    收藏  举报