CHDOJ
首页
题库
题单
比赛
评测
用户
讨论
帮助
工具
云剪贴板
树图画板
代码对比
登录
注册
3003: 卡片游戏
时间限制:1000 ms
内存限制:128 MB
上传者:
提交:33
通过:9
提交
提交记录
讨论
统计
题目描述
$ctr$与$fdf$在玩一个游戏,$ctr$有$n$张卡片,每张卡片上写了一个大写字母($A-Z$)。$fdf$要从中选出$k$张卡片$(1 \leq k \leq n)$,$ctr$会根据$fdf$选择的卡片奖励给$fdf$一定数目的硬币。
$ctr$制定了这样的奖励规则:
对于$fdf$的第$i$张卡片$(1 \leq i \leq k)$,用$f_{i}$表示$fdf$选择的$k$张卡片中字母与第$i$张相同的卡片数。最后会$ctr$给$fdf$的硬币总数为$\sum_{i = 1}^{k} f_{i}$。
告诉你$n$张卡片上的字母,请你帮$fdf$设计一种选择方案使他能获得最多的硬币,并输出能获得的最大硬币数量。
输入格式
输入第一行为一个整数$T(T \leq 25)$,表示一共有$T$组测试数据。
对于每组测试数据:
第一行有两个整数$n$和$k(1 \leq k \leq n \leq 10^{5})$,表示卡片总数与需要选择的卡片数。
第二行有$n$个大写字母(字母之间没有空格),其中第$i$个字母代表了第$i$张卡片上的字母。
输出格式
对于每组测试数据,输出一个整数表示$fdf$能获得的最大硬币数量。
输入样例
复制
2 15 10 DZFDFZDFDDDDDDF 6 4 YJSNPI
输出样例
复制
82 4
数据范围与提示
分类标签
2016年长安大学第三届程序设计竞赛新生赛