HDU5777 domino (BestCoder Round #85 B) 思路题+排序

时间:2023-03-08 23:27:47
HDU5777 domino  (BestCoder Round #85 B) 思路题+排序

分析:最终的结果肯定会分成若干个区间独立,这些若干个区间肯定是独立的(而且肯定是一边倒,左右都一样)

这样想的话,就是如何把这n-1个值分成 k份,使得和最小,那么就是简单的排序,去掉前k大的(注意longlong)

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <map>
#include <queue>
#include <vector>
using namespace std;
typedef long long LL;
const int N = 1e5+;
int a[N];
int main(){
int T,n,k;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&k);
for(int i=;i<n;++i)
scanf("%d",&a[i]);
LL ret=;
if(n<=k)ret+=n;
else{
sort(a+,a+n);
for(int i=;i<=n-k;++i)ret+=a[i]+;
ret+=k;
}
printf("%I64d\n",ret);
}
return ;
}