题解:CF2139B Cake Collection
_ruyingsuixing_ · · 题解
CF2139B Cake Collection 题解(全题解区最短代码)
安利一下博客 🥳🎆🎉祝大家 2026 新年快乐!
纯享阅读区
题意分析
核心:用
思路引导
:::warning[提问] 如何保证能选到最好的方案? :::
::::success[成功]
对数组
综上,取个 cmp 了!使用 greater<int>() 可以直接大到小进行排序。
示例代码:
sort(a+1,a+n+1,greater<int>());//对数组 a 从大到小进行排序
:::
::::
:::warning[提问]
如何证明早拿一次再晚拿一次同一个烤箱,和直接晚拿一次一样?
:::
:::success[成功]
证明:
设早拿的时间为
因此得出 long long 见祖宗,不用 1LL 乘见祖宗。
:::
完整代码
#include<bits/stdc++.h>
using namespace std;
long long t,n,m,a[200005],s;
int main(){
cin>>t;
while(t--){
s=0;
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1,greater<int>());
for(int i=1;i<=min(n,m);i++)s+=1LL*(m-i+1)*a[i];
cout<<s<<endl;
}
return 0;
}
//code by _ruyingsuixing_(UID:1620655)