题解:P13463 [GCJ 2008 #1C] Text Messaging Outrage
furina_yyds · · 题解
题解:P13463 [GCJ 2008 #1C] Text Messaging Outrage
这是一道贪心水题。
思路
要使得总次数最少,优先要将频率高的字母放在按键前面,所以可以将字母按频率排序,前
代码
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n, p, k, l, a[1005];
long long ans;
int main(){
scanf("%d", &n);
for(int _ = 1; _ <= n; _++){
scanf("%d%d%d", &p, &k, &l);
ans = 0;
for(int i = 1; i <= l; i++){
scanf("%d", &a[i]);
}
sort(a + 1, a + l + 1, greater<int>());
for(int i = 1; i <= l; i++){
ans += a[i] * ((i + k - 1) / k);
}
printf("Case #%d: %lld\n", _, ans);
}
return 0;
}