【第22期】观点:IT 行业加班,到底有没有价值?

HDU 1789 Doing Homework again 贪心

原创 2015年11月18日 10:30:54

题意:有n门课程,每个课程有一个作业,每一个作业一天写完,一天只能写一门课作业,告诉你每一门课的最后交作业的期限,如果交不上就要扣除相应的学分,问你最少会扣除多少分?


想法:这题不是利用率贪心,就是简单的一点想法,首先按照完成的期限升序排序,因为你要先保证要完成期限少的,再去完成期限多的,因为期限少的不能在(少期限,大期限]这段区间完成而期限大的可以。当有超期限的那么他的学分一定会被扣掉,但是我们可以选择之前完成的作业里面扣分最少的和他换一下,那么不就保证扣分最少了吗?


#include<stdio.h>
#include<algorithm>
#include<queue>
using namespace std;
int n;
struct node
{
    int dl,sec;
    friend bool operator <(const node &a,const node &b)
    {
        return a.sec>b.sec;
    }
}hw[1000+5];
priority_queue<node>q;
bool cmp(node a,node b)
{
    if(a.dl==b.dl) return a.sec>b.sec;
    else return a.dl<b.dl;
}
int main()
{
    int test;
    scanf("%d",&test);
    while(test--)
    {
        scanf("%d",&n);
        while(!q.empty()) q.pop();
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&hw[i].dl);
        }
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&hw[i].sec);
        }
        sort(hw+1,hw+1+n,cmp);
        int sum=0,day=1;
        for(int i=1;i<=n;i++)
        {
            if(hw[i].dl<day)
            {
                q.push(hw[i]);
                node k=q.top();
                q.pop();
                sum+=k.sec;
            }
            else
            {
                q.push(hw[i]);
                day++;
            }
        }
        printf("%d\n",sum);
    }
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

【贪心】 hdu1789 Doing Homework again

Doing Homework again http://acm.hdu.edu.cn/showproblem.php?pid=1789 Problem Description ...

hdu17891 Doing Homework again 贪心

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1789 //题目的意思是安排做作业的顺序,使得被扣的分数最少 //贪心策略:先按时间顺序递增排序,若时间相同按分数递减排序。 //然后从下标为0~n-1逐个检查,若时间够的话加入优先队列, //若不够从队列中找出最小的分数与当前比较,若当前的分数高则替换。 #include&lt;iost

hdu 1789 Doing Homework again(简单贪心)

Doing Homework again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot...

HDU 1789 Doing Homework again (贪心)

题目链接:<a href="http://acm.hdu.edu.cn/showproblem.php?pid=1789" target="_blank" style="color: rgb(202,0,0); text-decoration: none; font-family: Arial; font-size: 14px; line-height: 26px;

Doing Homework again(hdu1789,贪心)

http://acm.hdu.edu.cn/showproblem.php?pid=1789 http://acm.hust.edu.cn/vjudge/contest/view.action?...
  • JHC23
  • JHC23
  • 2013-08-17 11:45
  • 384
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)