zoukankan      html  css  js  c++  java
  • [JSOI2007]奶酪

    题目描述

    奶酪和pizza一样,是一小块扇形的固体。在奶酪从工厂里生产出来的时候,一共有4种形状,编号为1~4,分别是圆心角为72º;;,144º;;,216º;;,288º;;的扇形。奶酪的盒子是圆形的,半径和奶酪的半径一致。也就是说,一块1号奶酪和一块4号奶酪可以恰好装入一个盒子,一块2号奶酪和一块3号奶酪可以恰好装入一个盒子。
    你的任务是写一个程序,计算给定的奶酪最多可以装满几个盒子。

    输入格式

    一行,四个数字,表示1~4号奶酪的数量,都在0~100之内

    输出格式

    一个数字,表示可以装满几个盒子

    题解:———————————————————————————————————————————————————

    贪心顺序:
    72+288
    144+216
    72+2*144
    2*72+216
    3*72+144



    72+288
    144+216
    2*72+216
    72+2*144
    3*72+144


    通过数学方法可证明,相加的数的个数是递增的才能保证最优

    代码实现:

    #include<iostream>
    using namespace std;

    int main()
    {
        int a[6],i,j;
        cin>>a[1]>>a[2]>>a[3]>>a[4];
        a[5]=0; 
       
        j=min(a[4],a[1]);
        a[5]=a[5]+j;
        a[4]=a[4]-j;
        a[1]=a[1]-j;
       
        j=min(a[2],a[3]);
        a[5]=a[5]+j;
        a[2]=a[2]-j;
        a[3]=a[3]-j;
       
        j=min(a[1]/2,a[3]);
        a[5]=a[5]+j;
        a[1]=a[1]-2*j;
        a[3]=a[3]-j;
       
         j=min(a[1],a[2]/2);
        a[5]=a[5]+j;
        a[1]=a[1]-j;
        a[2]=a[2]-2*j;
       
        j=min(a[1]/3,a[2]);
        a[5]=a[5]+j;
        a[1]=a[1]-3*j;
        a[2]=a[2]-j;
          
        a[5]=a[5]+a[1]/5;
        a[1]=a[1]%5;
       
        if(a[1]>0) a[5]+=1;
        cout<<a[5];
        system("pause");
          
        }

  • 相关阅读:
    MVC实现类似QQ的网页聊天功能-ajax(下)
    SQLServer中跨库复制数据
    MVC实现类似QQ的网页聊天功能-Ajax(上)
    好看的Select下拉框是如何制造的
    Vss服务端用户存在,但客户端登陆不进去
    Jquery-uploadify多文件上传插件使用介绍
    jQuery mouseover,mouseout事件多次执行的问题处理
    解决svn状态图标不显示的办法
    ASP.NET获取用户端的真实IP
    js中时间戳与日期转换-js日期操作
  • 原文地址:https://www.cnblogs.com/noip/p/2283992.html
Copyright © 2011-2022 走看看