[CF1211C] Ice Cream - 贪心
Posted mollnn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CF1211C] Ice Cream - 贪心相关的知识,希望对你有一定的参考价值。
有 (n) 天时间来买一种物品,一共要买 (k) 件,第 (i) 天可以购买的范围是 ([a_i,b_i]),单价 (c_i),求最小总花费
Solution
暴力贪心,从最便宜的开始买即可
写完才发现原题要求用 Kotlin,我当做没看见了
主要是借着这题试用了一下 lambda 表达式
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1000005;
struct tup {
int a,b,c;
} t[N];
int n,k;
signed main() {
ios::sync_with_stdio(false);
cin>>n>>k;
int ans=0;
for(int i=1;i<=n;i++) {
cin>>t[i].a>>t[i].b>>t[i].c;
ans+=t[i].c*t[i].a;
k-=t[i].a;
t[i].b-=t[i].a;
}
sort(t+1,t+n+1,[](tup x,tup y)->bool{return x.c<y.c;});
for(int i=1;i<=n;i++) {
if(k<=0) continue;
int tmp=min(k,t[i].b);
ans+=t[i].c*tmp;
k-=tmp;
}
if(k>0||k<0) cout<<"-1";
else cout<<ans;
}
以上是关于[CF1211C] Ice Cream - 贪心的主要内容,如果未能解决你的问题,请参考以下文章
The 2016 ACM-ICPC Asia China-Final Contest Gym - 101194D Ice Cream Tower