E - Summer sell-off 贪心价值

传送门
思维:这个题思想就是贪心,获得局部最大然后达到总体最大。我们假设每天都存2倍的货,再与原来的比较,那么我们只要找出增值大的数即可。增值大的数即为最优选择。

#include<algorithm>
#include<iostream>
using namespace std;
struct node
{
    long long num, cp;
    long long w;
} s[100005];
bool cmp(node x, node y)
{
    return x.w > y.w;
}
int main()
{
    long long n, m, sum = 0;
    cin >> n >> m;
    for(int i = 1; i <= n; i++)
    {
        cin >> s[i].cp >> s[i].num;
        s[i].w = (s[i].cp * 2  < s[i].num ? 2 * s[i].cp : s[i].num) - (s[i].cp  < s[i].num ? s[i].cp : s[i].num); //w的增值
    }
    sort(s + 1, s + n + 1 ,cmp);
    for(int i = 1; i <= n; i++)
    {
        if(m)
        {
            m--;
            sum += min(s[i].cp * 2 ,s[i].num);
        }
        else
            sum += min(s[i].cp, s[i].num);
    }
    cout << sum << endl;
    return 0;
}

发布了241 篇原创文章 · 获赞 8 · 访问量 4938

猜你喜欢

转载自blog.csdn.net/weixin_43960370/article/details/103281003
今日推荐