#1024程序员节|征文#
人生中的第一道紫题。。。
题目传送门
解题思路
首先我们可以得到读入时 的正负不影响答案,因为我们可以进行一次操作将它们变成它们的相反数,从而使其变成原数,因此,我们可以将 取绝对值。
我们让 ,那么会有三种情况:
- ,如果想要制造出逆序对,要么 都不变成相反数,要么只有 变成相反数。
- ,如果想要制造出逆序对,要么 都变成相反数,要么只有 变成相反数。
- ,如果想要制造出逆序对,只能够 变成相反数。
因此,我们只需要取它变成相反数时与没变成相反数时的最小答案即可。
感谢 @奇米 的题解给作者提供了思路。
CODE:
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n, a[2010];
signed main() {
ios::sync_with_stdio(false);
ios_base::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
cin >> n;
int ans = 0;
for (int i = 1; i <= n; i++)
cin >> a[i], a[i] = abs(a[i]);
for (register int i = n; i >= 1; i--) {
int cnt = 0, res = 0;
for (register int j = 1; j < i; j++)
if (a[j] < a[i])
cnt++;
for (register int j = i + 1; j <= n; j++)
if (a[j] < a[i])
res++;
ans += min(res, cnt);
}
cout << ans;
return 0;
}
后记
笑死,模拟赛的时候没有想到,但是赛后看了题解感觉好简单啊,话说 月 日就是 CSP2024 的复赛了,涨涨 rp。
这个萌新 CSP-J 2022 T2 没有切出来,T3 骗分没骗到,T4 随机数骗了 分。当年一等分数线为 ,如果 就可以刚好一等了。
这个小白 CSP-S 2023 初赛没过,这虽然是第一次参加 S 的初赛,但是所有题目长的题我都没有耐心去读,随便填一个就完事,所以离初赛分数线还差 分。CSP-J 2023 T3 硬要写部分分优化(题目没读懂,当时不会 ),结果优化错了。。。导致 ,最后一等分数线为 ,如果 就可以一等了。
这个蒟蒻 CSP-J/S 2024 初赛全过,但是 S 很多题目还是不会,愿我佛保佑我一等。CSP-J 2024 预估分数 (但愿),CSP-S 2024 预估分数 (愿上天保佑)。
快祝我 rp += +\infty!
哦哦,今天还是 纪念日。
本蒟蒻祝各位神犇大佬 月 日快乐!
哦哦,差点忘掉了什么。
祝 CSDN 节日快乐!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!