Appleman and Card Game CodeForces - 462B (贪心)
2018-01-26 17:33
441 查看
Appleman and Card Game
CodeForces - 462BAppleman has n cards. Each card has an uppercase letter written on it. Toastman must choose
k cards from Appleman's cards. Then Appleman should give Toastman some coins depending on the chosen cards. Formally, for each Toastman's card
i you should calculate how much Toastman's cards have the letter equal to letter on
ith, then sum up all these quantities, such a number of coins Appleman should give to Toastman.
Given the description of Appleman's cards. What is the maximum number of coins Toastman can get?
Input
The first line contains two integers n and
k (1 ≤ k ≤ n ≤ 105). The next line contains
n uppercase letters without spaces — the
i-th letter describes the i-th card of the Appleman.
Output
Print a single integer – the answer to the problem.
Example
Input
15 10 DZFDFZDFDDDDDDF
Output
82
Input
6 4 YJSNPI
Output
4
Note
In the first test example Toastman can choose nine cards with letter
D and one additional card with any letter. For each card with
D he will get 9 coins and for the additional card he will get 1 coin.
贪心,直接储存下每种字母出现的次数,每次都选取出现次数最多的,次数的平方就是每次可以得到的钱
code:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
long long n,k;
char s[100010];
long long num[100];
bool cmp(long long a,long long b){
return a > b;
}
int main(){
scanf("%lld%lld",&n,&k);
scanf("%s",s);
int i;
memset(num,0,sizeof(num));
for(i = 0; i < n; i++){
num[s[i]-'A']++;
}
sort(num,num+26,cmp);
long long ans = 0;
for(i = 0; i < 26; i++){
if(num[i]<=k){
ans = ans+(num[i]*num[i]);
k -= num[i];
}
else{
ans = ans + k*k;
k =0;
}
if(!k)break;
}
printf("%lld\n",ans);
return 0;
}
相关文章推荐
- 【Codeforces Round 263 (Div 2)B】【水题 贪心】Appleman and Card Game 选字符,每个字符个数的平方
- 【Codeforces Round 263 (Div 2)C】【贪心 哈弗曼思维】Appleman and Toastman 每个非1size子树延展为2子树的最大权
- Codeforces Fox and Card Game (贪心,排序)
- Codefores Round #263 (div2) B. Appleman and Card Game
- Appleman and Card Game(贪心)
- CF_462B_ApplemanAndCardGame
- codeforces 462 B.Appleman and Card Game (贪心)
- Appleman and Card Game
- 【Codeforces Round 263 (Div 2)D】【树形DP】Appleman and Tree 树上割k个黑点为k块的方案数
- Fox and Card Game CodeForces - 388C
- B. Appleman and Card Game
- 462B - Appleman and Card Game
- Codeforces Round #419 (Div. 2) C. Karen and Game【贪心】
- Codeforces Round #263 (Div. 1) B. Appleman and Tree(给一棵树,每个点为白色或黑色,切断一些边,使得每个连通块有且仅有一个黑点,问划分方案数。)
- Codeforces Round #263 (Div. 2)-B. Appleman and Card Game
- Codeforces Round #228 Fox and Card Game 解题报告
- Codeforces #228 D2E / D1C:Fox and Card Game
- Codeforces Round #263 (Div. 2)B. Appleman and Card Game
- B. Appleman and Card Game
- Codeforces Round #263 (Div. 1) A. Appleman and Toastman