• 装箱问题


    7-2 装箱问题 (20分)

     
    假设有N项物品,大小分别为s​1​​、s​2​​、…、s​i​​、…、s​N​​,其中s​i​​为满足1的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。
    
    输入格式:
    输入第一行给出物品个数N(≤);第二行给出N个正整数s​i​​(1,表示第i项物品的大小)。
    
    输出格式:
    按照输入顺序输出每个物品的大小及其所在的箱子序号,每个物品占1行,最后一行输出所需的箱子数目。
    
    输入样例:
    8
    60 70 80 90 30 40 10 20
     
    输出样例:
    60 1
    70 2
    80 3
    90 4
    30 1
    40 5
    10 1
    20 2
    5



    #include <stdio.h>
    
    int main(int argc, const char *argv[])
    {
        int i, j, n,max=0;
        int s[1010];
        int v[1010];    
        scanf("%d",&n);
        for(i=0; i<n; i++)
        {
            v[i] = 100;                //箱子的体积是100 
            scanf("%d",&s[i]);        //物品的体积1~100 
        } 
        for(i=0; i<n ;i++)         //每个物品都要从头开始试箱子,二重循环 
        {
            for(j=0; j<n; j++ )    //物品的变量i         箱子的变量j 
            {
                if(v[j] >= s[i] )   //装箱操作:箱子容量减少,打印提示语句,进行下个物品装箱 
                {
                    v[j] = v[j]-s[i];
                    printf("%d %d
    ",s[i],j+1);
                    max = max<(j+1)?(j+1):max;
                    break;        
                }        
            }
        }
        printf("%d",max);    //用来存放最大箱子的数 
        return 0;        
    } 
     
  • 相关阅读:
    阿里云内网和公网NTP服务器和其他互联网基础服务时间同步服务器
    python3 tkinter
    未来的趋势发展 802.11v网络协议解析
    如何挑选好料酒?
    bootstrap
    结巴中文词频分析
    Covariance 协方差分析
    调整的R方_如何选择回归模型
    赤池信息量准则 ( Akaike information criterion)
    python蒙特卡洛脚本模拟—挑战者号爆炸概率
  • 原文地址:https://www.cnblogs.com/ytdyz/p/12336079.html
Copyright © 2020-2023  润新知