zoukankan      html  css  js  c++  java
  • UVa 311

      题目大意:有1X1,2X2 ... 5X5,6X6六种类型的物品,把他们装进6X6的盒子里,求使用的最少盒子数。

      贪心吧,其实一看就知道思路了,算是常识吧,装物品时通常都是先装大的,再在其余空间放小的。一点一点敲代码就好了。

     1 #include <cstdio>
     2 
     3 int main()
     4 {
     5 #ifdef LOCAL
     6     freopen("in", "r", stdin);
     7 #endif
     8     int a[7];
     9     while (scanf("%d%d%d%d%d%d", &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]) != EOF)
    10     {
    11         if (!a[1] && !a[2] && !a[3] && !a[4] && !a[5] && !a[6])   break;
    12         int ans = 0;
    13         if (a[6] > 0)
    14         {
    15             ans += a[6];
    16         }
    17         if (a[5] > 0)
    18         {
    19             ans += a[5];
    20             a[1] -= a[5] * 11;
    21         }
    22         if (a[4] > 0)
    23         {
    24             ans += a[4];
    25             a[2] -= a[4] * 5;
    26             if (a[2] < 0)
    27             {
    28                 a[1] -= -4 * a[2];
    29                 a[2] = 0;
    30             }
    31         }
    32         if (a[3] > 0)
    33         {
    34             ans += (a[3]+3) / 4;
    35             int t = a[3] % 4;
    36             switch(t)
    37             {
    38                 case 1:
    39                     a[2] -= 5;
    40                     a[1] -= 7;
    41                     break;
    42                 case 2:
    43                     a[2] -= 3;
    44                     a[1] -= 6;
    45                     break;
    46                 case 3:
    47                     a[2] -= 1;
    48                     a[1] -= 5;
    49                     break;
    50             }
    51         }
    52         if (a[2] > 0)
    53         {
    54             ans += (a[2]+8) / 9;
    55             int t = a[2] % 9 * 4;
    56             a[1] -= 36 - t;
    57         }
    58         if (a[1] > 0)   ans += (a[1]+35) / 36;
    59         printf("%d
    ", ans);
    60     }
    61     return 0;
    62 }
    View Code

      代码可以再精简,不过精简之后思路就不如这个直接了,其实是我想偷懒啦,哈哈

  • 相关阅读:
    IDEA 2017 安装和破解
    Linux新增开放端口
    ping指定IP的指定端口号
    Ubuntu防火墙常用命令
    Ubuntu端口常用命令
    File Zilla连接Ubuntu 失败
    Docker常用命令详解
    Linux的vi常用命令详解
    Qt事件系统之二:鼠标事件和滚轮事件
    Qt事件系统之一:Qt中的事件处理与传递
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3228909.html
Copyright © 2011-2022 走看看