欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【排序】HDU-5777 domino

程序员文章站 2022-05-01 14:37:54
...

【排序】HDU-5777 domino
【排序】HDU-5777 domino

注解

1、排序。n张多米诺骨牌,但是每张骨牌的高度可以随意设定。保证k次推倒的情况下,所有骨牌都能倒下。求最小的高度和。
2、根据相邻骨牌的距离排序,选择距离最小的前n-k个骨牌推倒即可。总的高度最小和就是选中的距离加上骨牌的数目(因为每张骨牌的最小高度为1)。

代码

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

typedef long long int LL;

int main(){
	int T;
	cin>>T;
	for(int i=1; i<=T; i++){
		int n, k;
		cin>>n>>k;
		LL a[n-1];
		memset(a, 0, sizeof(a));
		for(int j=0; j<n-1; j++){
			cin>>a[j];
		}
		sort(a, a+n-1);
		LL ans = n;
		for(int j=0; j<n-k; j++){
			ans += a[j];
		}
		cout<<ans<<endl;
	}
	return 0;
}

结果

【排序】HDU-5777 domino

相关标签: 排序