• [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");
          
        }

  • 相关阅读:
    Jmeter之八大可执行元件及执行顺序
    Windows系统下查看某一进程下所有线程的dos命令
    (转)WebSocket的原理
    DVWA的安装
    BurpSuite+SQLmap的一种另类扫描
    (转)sqlmap用户手册
    HTTP缓存&代理
    使用python实现两个文件夹里文件的对比(包含内容的对比)
    mapreduce-实现多表关联
    mapreduce-实现单表关联
  • 原文地址:https://www.cnblogs.com/noip/p/2283992.html
Copyright © 2020-2023  润新知