zoukankan      html  css  js  c++  java
  • hdu 1789 贪心

    画一个图分析一下就清楚啦,应该优先考虑完成损失最大的作业,因为一天只能完成一门作业,而同时应该倒着从deadline往回找合适的完成时间,因为这样对于别的作业来说,它们有更多的机会被完成。另外,deadline的数据范围也是1000以内。

     1 #include <algorithm>
     2 #include <iostream>
     3 #include <cstring>
     4 #include <cstdio>
     5 using namespace std;
     6 
     7 const int N = 1007;
     8 bool visit[N];
     9 
    10 struct Node 
    11 {
    12     int d, s;
    13     bool operator < ( const Node & o ) const 
    14     {
    15         return s > o.s;
    16     }
    17 } node[N];
    18 
    19 int main ()
    20 {
    21     int t;
    22     scanf("%d", &t);
    23     while ( t-- )
    24     {
    25         int n, sum = 0;
    26         scanf("%d", &n);
    27         for ( int i = 0; i < n; i++ ) 
    28         {
    29             scanf("%d", &node[i].d);
    30         }
    31         for ( int i = 0; i < n; i++ ) 
    32         {
    33             scanf("%d", &node[i].s);
    34             sum += node[i].s;
    35         }
    36         sort( node, node + n );
    37         memset( visit, 0, sizeof(visit) );
    38         for ( int i = 0; i < n; i++ )
    39         {
    40             for ( int j = node[i].d; j > 0; j-- )
    41             {
    42                 if ( !visit[j] )
    43                 {
    44                     visit[j] = 1;
    45                     sum -= node[i].s;
    46                     break;
    47                 }
    48             }
    49         }
    50         printf("%d
    ", sum);
    51     }
    52     return 0;
    53 }
  • 相关阅读:
    组合数计算--动态规划
    ListView 的position和id的区别
    android View 关于transient
    BlockingQueue深入分析
    栈的实现(JAVA)
    队列的实现(JAVA)
    《算法导论》读书笔记之第11章 散列表
    java 二叉搜索树
    桶排序
    排序算法的稳定性
  • 原文地址:https://www.cnblogs.com/huoxiayu/p/4693047.html
Copyright © 2011-2022 走看看