题解:CF2139B Cake Collection
Chenxuhang_play · · 题解
发现其他文章的代码相对复杂一些,这里来交一篇代码相对容易的题解。
题目传送门
https://www.luogu.com.cn/problem/CF2139B
思路
(观看须知:非特别说明,本题解中的第
可以发现,对于每个烤箱,在第
当然可以发现,当烤箱个数大于可以收集的时间秒数时,这种方式需要一点点的改变。从第
按照以上分析进行模拟即可。
代码实现
在对于
在代码中,
代码
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
long long t;
cin>>t;
while(t--)
{
long long n,m;
cin>>n>>m;
long long a[n],ans=0;
for(long long i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n,cmp);//对数组 a 进行降序排序
for(long long i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
for(int i=0,j=m;i<min(n,m);i++,j--)//i 代表烤箱的号码,j 表示收集这个烤箱里的蛋糕的时间
{
ans+=j*a[i];
}
cout<<ans<<endl;
}
return 0;
}