zoukankan      html  css  js  c++  java
  • 贪心算法1017

    题目大意:

    给出1*1,2*2,3*3,4*4,5*5,6*6,的正方形盒子数目,要求被装在6*6的盒子里,最少能够用几个盒子?

    解题思路:

    先从6*6盒子考虑,没有空余,5*5盒子有11个1*1空余,4*4剩下的空间先填充2*2,再填充1*1,3*3剩下的分为等于3,2,1时的情况讨论,最后分割2*2,1*1.

    代码:

    #include <iostream>
    using namespace std;
    int main()
    {
       int a,b,c,d,e,f,sum=0,k,z;
       while(cin>>a>>b>>c>>d>>e>>f&&(a+b+c+d+e+f))
       {
           sum=0;
    
           sum+=f;
           sum+=e;
           a=a-e*11;
           sum+=d;
           if(d*5>=b)
           {
               a=a-(d*5-b)*4;
               b=0;
           }
           else b=b-d*5;
           if(c%4==0)
           {
               sum+=c/4;
               if(b%9==0)
               {
                   sum+=b/9;
                   if(a>0)
                   sum+=(a+35)/36;
    
               }
               if(b%9!=0)
               {
                   sum+=b/9+1;
                   k=9-b%9;
                   a=a-k*4;
                   if(a>0)
                   sum+=(a+35)/36;
               }
           }
    
           else if(c%4!=0)
           {
               z=b;
               sum+=c/4+1;
               k=4-c%4;
                if(k==3)
                b=b-5;
                if(k==2)
                b=b-3;
                if(k==1)
                b=b-1;
               if(b<=0)
               {
                   a=a-(k*9-4*z);
                   if(a>=0)
                   sum+=(a+35)/36;
               }
               else
               {
                   if(k==3)
                   a=a-7;
                   if(k==2)
                   a=a-6;
                   if(k==3)
                   a=a-5;
                   sum+=(b+8)/9;
                   if(b%9==0)
                   {
                       if(a>0)
                       sum+=(a+35)/36;
                   }
                   else
                   {
                       k=9-b%9;
                       a=a-k*4;
                       if(a>0)
                       sum+=(a+35)/36;
                   }
                }
           }
           cout<<sum<<endl;
       }
    
        return 0;
    }
  • 相关阅读:
    准备工作
    小黄衫感言
    2021软件工程总结
    4 20210412-1 原型设计作业
    2021软工-软件案例分析
    202103226-1 编程作业
    《构建之法》——读后感
    2021软件工程-第一周作业01准备工作
    Arthas笔记
    自定义 Web 容器
  • 原文地址:https://www.cnblogs.com/Sikaozhe/p/5314184.html
Copyright © 2011-2022 走看看