专栏文章
题解:P13463 [GCJ 2008 #1C] Text Messaging Outrage
P13463题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mioq1u3z
- 此快照首次捕获于
- 2025/12/02 23:17 3 个月前
- 此快照最后确认于
- 2025/12/02 23:17 3 个月前
题解
看到这道题第一眼就是贪心。
我们发现,出现字母的次数越多,我们就越应该把它放在前面,所以直接对数组排序,越大的放在前面,也就是将次数 ,以此类推,统计答案即可。
正确代码
CPP#include <bits/stdc++.h>
#define int long long//十年OI一场空,不开 long long 见祖宗。
using namespace std;
int a[1000005];
signed main()
{
int t;
scanf("%lld",&t);
for(int i=1;i<=t;i++)
{
int n,m,k;
scanf("%lld%lld%lld",&n,&m,&k);
for(int j=1;j<=k;i++) scanf("%lld",&a[j]);
sort(a+1,a+k+1);
int cnt = 1,qwq = 0,ans = 0;
for(int j=k;j>=1;i--)
{
ans+=a[j]*cnt;
qwq++;
if(qwq==m)//统计现在应该分配到第几个键了
{
cnt++;
qwq = 0;
}
}
printf("Case #%lld: %lld\n",i,ans);//输出
}
}//请不要直接复制粘贴,谢谢
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...