zoukankan      html  css  js  c++  java
  • 【杭电】[1789]Doing Homework again

    这里写图片描述
    这里写图片描述

    为了让浪费的分数最小
    考虑优先排序分数

    由题意知,尽量使安排放在靠近截止日期的那一天
    比如 4 天截止
    那么便考虑放在第4天完成,如果不行就第3天第2天……
    如果安排不了,说明这个分数就浪费了

    所以可建数组记录当天是否有安排作业
    以此来判断作业应该安排在哪一天

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    struct node {
        int date,score;
    } a[1200];
    bool cmp(node A,node B) {
        if(A.score==B.score)
            return A.date>B.date;
        else
            return A.score>B.score;
    }
    int flag[1200];
    int main() {
        int T;
        scanf("%d",&T);
        while(T--) {
            int n;
            scanf("%d",&n);
            for(int i=0; i<n; i++)
                scanf("%d",&a[i].date);
            for(int i=0; i<n; i++)
                scanf("%d",&a[i].score);
            sort(a,a+n,cmp);
            int sum=0;
            memset(flag,0,sizeof(flag));
            for(int i=0; i<n; i++) {
                int j;
                for(j=a[i].date; j>0; j--) {
                    if(!flag[j]) {
                        flag[j]=1;
                        break;
                    }
                }
                if(j==0)
                    sum+=a[i].score;
            }
            printf("%d
    ",sum);
        }
        return 0;
    }

    题目地址:【杭电】[1789]Doing Homework again

  • 相关阅读:
    Monad Maybe
    Linq怎么支持Monad
    创建我们第一个Monad
    Monad的重点
    解析器组合子
    NFA
    全排列算法
    R语言将数据框转成xts
    R语言的字符串处理
    wpf mvvm MenuItem的Command事件
  • 原文地址:https://www.cnblogs.com/BoilTask/p/12569496.html
Copyright © 2011-2022 走看看