HDU-4221 Greedy? 贪心 从元素的相对位置开始考虑

Posted tanglizi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU-4221 Greedy? 贪心 从元素的相对位置开始考虑相关的知识,希望对你有一定的参考价值。

题目链接:https://cn.vjudge.net/problem/HDU-4221

题意

给n个活动,每个活动需要一段时间C来完成,并且有一个截止时间D
当完成时间t大于截止时间完成时,会扣除t-D分
找出如何使所扣分的最大值最小的那个最小值

思路

又是一道最小化最大值的题目
入手点还是相对位置
一样地讨论任意两个元素,使第一个元素放在前面为最优解,分析条件
d越小越在前面

提交过程

AC 套路题

代码

#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=1e5+20;
struct Node{
    long long c, d;
    bool operator < (Node &a) const{
        return d<a.d;
    }
}node[maxn];

int main(void){
    int T, n, cnt=1;

    scanf("%d", &T);
    while (T--){
        scanf("%d", &n);
        for (int i=0; i<n; i++)
            scanf("%lld%lld", &node[i].c, &node[i].d);
        sort(node, node+n);

        long long ans=0, sum=0;
        for (int i=0; i<n; i++){
            long long delta=sum+node[i].c-node[i].d;
            if (delta>ans) ans=delta;
            sum+=node[i].c;
        }printf("Case %d: %lld
", cnt++, ans);
    }

    return 0;
}
Time Memory Length Lang Submitted
655ms 3168kB 667 G++ 2018-06-23 15:00:50





以上是关于HDU-4221 Greedy? 贪心 从元素的相对位置开始考虑的主要内容,如果未能解决你的问题,请参考以下文章

贪心算法(Greedy)——算法三十六计之四

「码趣分享」贪心算法Greedy Algorithm

贪心Greedy

每周算法贪心算法(Greedy Algorithm)

零基础学启发式算法-贪心算法(Greedy Algorithm)

集束搜索beam search和贪心搜索greedy search