XidianOJ 1120 Gold of Orz Pandas

Posted TOTOTOTOTZZZZZ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XidianOJ 1120 Gold of Orz Pandas相关的知识,希望对你有一定的参考价值。

题目描述

Orz Panda is addicted to one RPG game. To make his character stronger, he have to fulfil tasks to get EXP for higher level.At first he accepted all the tasks.But after he read rules carefully, he realized that what he has done was stupid.
Rule:
Every task costs 1 time interval.
Every task has a dead line.If you can‘t finish it on time ,you have to pay the same amount of gold as the EXP given by this task.

Orz Panda wants to know the minimum amount of gold he has to pay.

 

输入

The first line has one integer n, tell you how many tasks Orz Panda has accepted.
The second line has n integers ti separated by blank, represent for the ith task‘s dead line.
The third line has n integers ei separated by blank, represent for the
EXP given by the ith task.
(1 <= n, ti, ei <= 1000)

 

输出

One integer for the minimum amount of gold Orz Panda has to pay.

--正文
第一想法就是贪心,想了一想按照价值排好来贪好像是对的,试了一下果然如此
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;

struct TaskNode{
    int DeadLine;
    int Value;
};
struct TaskNode Task[1001];
int used[1001];
bool cmp(struct TaskNode t1,struct TaskNode t2){
    if (t1.Value == t2.Value) return (t1.DeadLine < t2.DeadLine);
    return t1.Value > t2.Value;
}

int main(){
    int n;
    while (scanf("%d",&n) != EOF){
        int i;
        for (i=1;i<=n;i++){
            scanf("%d",&Task[i].DeadLine);
        }
        for (i=1;i<=n;i++){
            scanf("%d",&Task[i].Value);
        }
        sort(Task+1,Task+1+n,cmp);
        int Ans = 0;
        memset(used,0,sizeof(used));
        for (i=1;i<=n;i++){
            int nowT = Task[i].DeadLine;
            while (nowT > 0 && used[nowT]) nowT--;
            if (nowT == 0) {
                Ans += Task[i].Value;
            } 
            else used[nowT] = 1;
        } 
        printf("%d\n",Ans);
    }
    return 0;
}

 

以上是关于XidianOJ 1120 Gold of Orz Pandas的主要内容,如果未能解决你的问题,请参考以下文章

XidianOJ 1195 Industry of Orz Pandas

UVAlive6800The Mountain of Gold?(负环)

hdu6769 In Search of Gold

Special edition Gold Tornado to celebrate 35th years of G-Shock

HDU 6769 In Search of Gold 二分答案+树形DP

The End of Gold Age:Why Beijing isn't the Best Place for Expats?