zoukankan      html  css  js  c++  java
  • DP:Space Elevator(POJ 2392)

                 

                      太空电梯

      题目大意:一群牛想造电梯到太空,电梯都是由一个一个块组成的,每一种块不能超过这个类型的高度,且每一种块都有各自的高度,有固定数量,问最高能造多高。

      这题就是1742的翻版,对ai排个序就可以了

      (尼玛,我qsort排了n-1个数,wa半天不知所措)

     1 #include <iostream>
     2 #include <functional>
     3 #include <algorithm>
     4 
     5 using namespace std;
     6 typedef struct _set
     7 {
     8     int h_i;
     9     int max_h;
    10     int count;
    11 }Block;
    12 int fcomp(const void *a, const void *b)
    13 {
    14     return (*(Block *)a).max_h - (*(Block *)b).max_h;
    15 }
    16 
    17 static int dp[40005];
    18 static Block B_Set[404];
    19 
    20 void Search(const int);
    21 
    22 int main(void)
    23 {
    24     int n;
    25     while (~scanf("%d", &n))
    26     {
    27         if (n == 0) continue;
    28         for (int i = 1; i <= n; i++)
    29             scanf("%d%d%d", &B_Set[i].h_i, &B_Set[i].max_h, &B_Set[i].count);
    30         qsort(B_Set, n + 1, sizeof(Block), fcomp);
    31         Search(n);
    32     }
    33     return 0;
    34 }
    35 
    36 void Search(const int n)
    37 {
    38     int i, j;
    39     memset(dp, -1, sizeof(dp));
    40     dp[0] = 0;
    41     for (i = 1; i <= n; i++)
    42     {
    43         if (B_Set[i].h_i == 0) continue;
    44         for (j = 0; j < B_Set[i].h_i && j <= B_Set[i].max_h; j++)//先把前面的几个包确定下来
    45             if (dp[j] != -1)
    46                 dp[j] = B_Set[i].count;
    47         for (; j <= B_Set[i].max_h; j++)
    48         {
    49             if (dp[j] == -1)
    50             {
    51                 if (dp[j - B_Set[i].h_i] <= 0)
    52                     continue;
    53                 else dp[j] = dp[j - B_Set[i].h_i] - 1;
    54             }
    55             else dp[j] = B_Set[i].count;
    56         }
    57     }
    58     for (int i = B_Set[n].max_h; i >= 0; i--)
    59     {
    60         if (dp[i] >-1)
    61         {
    62             printf("%d
    ", i);
    63             break;
    64         }
    65     }
    66 }

  • 相关阅读:
    ubuntu 搭建 php 环境
    【转】送给和我一样曾经浮躁过的PHPer程序猿,希望有帮助
    thinkphp iis下去掉index.php
    windows定时执行PHP的技巧
    js 生成随机数字的方法
    Linux下crontab命令的用法
    收藏下(设为收藏,设为首页)
    C#扩展方法的理解
    Win7 访问共享时输入正确密码仍然提示密码错误
    SQL Server 获取插入记录后的自动编号ID
  • 原文地址:https://www.cnblogs.com/Philip-Tell-Truth/p/4937956.html
Copyright © 2011-2022 走看看