欢乐赛#37T5
2025-01-06 08:59:21
发布于:北京
16阅读
0回复
0点赞
为了找到最少的操作次数使得数组的中间值增加,我们可以采取以下步骤:
1.排序:首先对数组进行排序。
2.找到中位数位置:由于数组长度为 n,所以中位数的位置是n/2-1(因为数组下标从0开始)。
#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
int a[10009];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a, a + n);
int mid = (n + 1) / 2 - 1;
int cnt = a[mid] + 1;
int ans = 0;
for (int i = mid; i < n; i++) {
if (a[i] < cnt) {
ans += cnt - a[i];
}
}
cout << ans << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个