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\n", cnt++, ans);
    }

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

原文地址:https://www.cnblogs.com/tanglizi/p/9219080.html

时间: 2024-10-08 08:43:50

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

HDU 4221 Greedy?

F - Greedy? Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4221 Description iSea is going to be CRAZY! Recently, he was assigned a lot of works to do, so many that you can't imagine. Each task

HDU 4221 Greedy?(贪心啊啊)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4221 Problem Description iSea is going to be CRAZY! Recently, he was assigned a lot of works to do, so many that you can't imagine. Each task costs Ci time as least, and the worst news is, he must do thi

HDU 4221 Greedy?(贪心)

题意: 思路: #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<stdlib.h> #include<vector> #include<queue> #include<stack> #include<algorithm> using namespace std; struct Work {

HDU 4864 Task (贪心+STL多集(二分)+邻接表存储)(杭电多校训练赛第一场1004)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864 解题报告:有n台机器用来完成m个任务,每个任务有一个难度值和一个需要完成的时间,每台机器有一个可以工作的最长时间和一个可以完成的任务的难度的最大值, 一台机器能完成一个任务的条件是这台机器的最长工作时间和能完成任务的难度值必须都大于等于这个任务,而且一台机器最多完成一个任务,假设一个任务的时间为t,难度值为x,那么完成这个任务可以赚到的钱 money = 500 * t + 2 * x; 现在

hdu 4869 Task(贪心)

题目链接:hdu 4869 Task 题目大意:有n台机器,m个任务,每个机器和任务都有有xi和yi,要求机器的xi,yi均大于等于任务的xi和yi才能执行任务.每台机器一天只能执行一个任务.要求完成的任务数尽量多,并且说金额尽量大.完成每个任务的金额为xi?500+yi?2 解题思路:贪心,mach[i][j]表示等级为i,时间为j的机器数量,task[i][j]表示等级为i,时间为j的机器数量.每次优先减少i,因为对应等级减少100,对应的金额代价也不会减少超过500(即时间减少1). 每次

HDU 4864 Task(贪心)

HDU 4864 Task 题目链接 题意:有一些机器和一些任务,都有时间和等级,机器能做任务的条件为时间等级都大于等于任务,并且一个任务只能被一个机器做,现在求最大能完成任务,并且保证金钱尽量多 思路:贪心,对于每个任务,时间大的优先去匹配,时间相同的,等级大的优先去匹配,因为时间占得多,时间多1就多500,而等级最多才差200.然后匹配的时候,尽量使用等级小的去匹配,而时间只要大于它的都可以用,因为是按时间优先,所以如果该时间能匹配大的,其他肯定也能匹配,那么肯定优先匹配大的,所以只要在等级

HDU 4811 Ball(贪心)

2014-05-15 22:02 by Jeff Li 前言 系列文章:[传送门] 马上快要期末考试了,为了学点什么.就准备这系列的博客,记录复习的成果. 正文-计数  概率 概率论研究随机事件.它源于赌徒的研究.即使是今天,概率论也常用于赌博.随机事件的结果是否只凭运气呢?高明的赌徒发现了赌博中的规律.尽管我无法预知事件的具体结果,但我可以了解每种结果出现的可能性.这是概率论的核心. "概率"到底是什么?这在数学上还有争议."频率派"认为概率是重复尝试多次,某种结

HDU 4912 LCA+贪心

Paths on the tree Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 531    Accepted Submission(s): 182 Problem Description bobo has a tree, whose vertices are conveniently labeled by 1,2,…,n. Th

HDU 1661 Assigments 贪心法题解

Problem Description In a factory, there are N workers to finish two types of tasks (A and B). Each type has N tasks. Each task of type A needs xi time to finish, and each task of type B needs yj time to finish, now, you, as the boss of the factory, n