• HDU 1789 Doing Homework again


    坚持写解题报告,是总结提高,也是对自己的激励。

    这道题貌似没有用到动态规划啊。

    是纯贪心吧,是吧。。

    定义一个结构体,先对score从大到小排序,然后对deadline从大到小二级排序。

    从分值最高的作业开始,看看是否能在deadline那天或之前完成。

    如果不能完成,那么这分只能丢掉。

     1 #define LOCAL
     2 #include <iostream>
     3 #include <cstdio>
     4 #include <cstring>
     5 #include <algorithm>
     6 using namespace std;
     7 
     8 struct HomeWork
     9 {
    10     int deadline;
    11     int score;
    12 }homework[1010];
    13 
    14 bool busy[1010];    //记录第i天是否安排了作业
    15 
    16 bool cmp(HomeWork a, HomeWork b)
    17 {
    18     if(a.score != b.score)
    19         return (a.score > b.score);
    20     return (a.deadline > b.deadline);
    21 }
    22 
    23 int main(void)
    24 {
    25     #ifdef LOCAL
    26         freopen("1789in.txt", "r", stdin);
    27     #endif
    28 
    29     int N;
    30     int LostScore;
    31     scanf("%d", &N);
    32     while(N--)
    33     {
    34         int n, i;
    35         memset(busy, false, sizeof(busy));
    36         
    37         scanf("%d", &n);
    38         for(i = 0; i < n; ++i)
    39             scanf("%d", &homework[i].deadline);
    40         for(i = 0; i < n; ++i)
    41             scanf("%d", &homework[i].score);
    42         sort(homework, homework + n, cmp);
    43         
    44         int LostScore = 0;
    45         for(i = 0; i < n; ++i)
    46         {
    47             int j;
    48             for(j = homework[i].deadline; j > 0; --j)
    49             {
    50                 if(!busy[j])        //如果第j天有空,那么这天完成作业i
    51                 {
    52                     busy[j] = true;
    53                     break;
    54                 }
    55             }
    56             if(j <= 0)        //如果这次作业没有安排好,那么只能丢掉这分
    57                 LostScore += homework[i].score;
    58         }
    59 
    60         printf("%d
    ", LostScore);
    61     }
    62     return 0;
    63 }
    代码君
  • 相关阅读:
    MOXA串口服务器使用
    【笔记】Winform设置快捷键
    comboBox联动
    【笔记】winform窗体显示
    关于xml文件的使用
    day_6
    day_5
    dau_4
    day_3
    day_2
  • 原文地址:https://www.cnblogs.com/AOQNRMGYXLMV/p/3842022.html
Copyright © 2020-2023  润新知