• poj 1017(贪心)


    【题目大意

    题目大意是这样的:某工厂生产几种产品,首先用packet包住,这些产品的高度都是h,底面积有1*1,2*2,3*3,4*4,5*5,6*6六种规格,下面我们要用高度为h,底面积为6*6的集装箱装这些货物,问怎样使所用集装箱数目最少?

    解题思路

    我们首先必须先装底面积大的货物,并且对于面积为4*4,5*5,6*6的货物,每一件都需要一个独立的集装箱。对于底面积为3*3的货物,每四个需要一个集装箱。

    那么我们可以得知对于装了底面积为3*3的货物的集装箱,其剩余可以装5,3,1个底面积为2*2的货物。对于装了底面积为4*4的集装箱,其剩余空间可以装5个2*2的货物。对于装了底面积为5*5的集装箱,其剩余可以装11个底面积为1*1的集装箱。我们可以通过计算剩余的空间进而求得最小数目。

    AC代码

     1 #include <stdio.h>
     2 int  main()
     3 {
     4  int N, a, b, c, d, e, f, y, x;
     5  int u[4]={0, 5, 3, 1};
     6  while(1)
     7  {
     8   scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f);
     9   if (a == 0 && b == 0 && c == 0 && d == 0 && e == 0 && f == 0) break;
    10   N = f + e + d + (c + 3) / 4;//向上取整
    11   y = 5 * d + u[c % 4];
    12   if(b > y) N += (b - y + 8 ) / 9;
    13   x = 36 * N - 36 * f - 25 * e - 16 * d - 9 * c - 4 * b;
    14   if(a > x) N += ( a - x + 35 ) / 36;
    15   printf("%d
    ", N);
    16  }
    17  return 0;
    18 }
  • 相关阅读:
    使用Entity Framework时要注意的一些性能问题
    在EntityFrameWork中定义值对象的注意事项
    关于EntityFrameWork中的贪婪加载和延时加载
    Centos上安装mplayer
    Centos上安装madplay
    编译可加载lcd驱动的linux uImage
    ok6410上移植madplay
    linux上安装Qt
    ok6410的mplayer移植
    交叉编译tslib
  • 原文地址:https://www.cnblogs.com/khbcsu/p/3884590.html
Copyright © 2020-2023  润新知