码迷,mamicode.com
首页 > 其他好文 > 详细

[CF1211C] Ice Cream - 贪心

时间:2020-04-02 19:44:11      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:贪心   时间   范围   clu   ++   pre   include   continue   ons   

\(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 - 贪心

标签:贪心   时间   范围   clu   ++   pre   include   continue   ons   

原文地址:https://www.cnblogs.com/mollnn/p/12622422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!