当前位置: 首页 > article >正文

GESP4级考试语法知识(贪心算法(五))

装箱问题1代码:

#include <iostream>
using namespace std;
int main()
{
    int a,b,c,d,e,f;
    while (true)
	{
        int N = 0;        // 计算需要的包裹数
        cin>>a>>b>>c>>d>>e>>f;
        if (a==0&&b==0&&c==0&&d==0&&e==0&&f==0)
            break;
        N = f+e+d+(c+3)/4;// 从6开始,计算最少需要的箱子数
        int y=5*d;        // y:计算可存放2*2货物的空隙个数
        if (c%4==1) y+=5;
        else if (c%4==2) y+=3;
        else if (c%4==3) y+=1;
        if (b>y)          // 如果2*2预留位不够再加包裹
		{                 
            N += (b-y+8)/9;
        }
        int x = 36*N-36*f-25*e-16*d-9*c-4*b;// x计算可存放1*1箱子的个数
        if (a>x)
		{
            N += (a-x+35)/36;
        }
        cout<<N<<endl;
    }
}

装箱问题2代码:

#include<iostream>
using namespace std;
struct th
{
    int weight;//物品的重量
    int index=0;//物品所在箱子序号,为0时表示未放入箱子
}thing[1000];//结构体数组
int main()
{
    int N;//物品个数、箱子个数
    int box[1000];//各个箱子的剩余容量
    int num=0;//所需箱子的个数
    int i,j;
    cin>>N;
    for(i=1;i<=N;i++)
        cin>>thing[i].weight;
    /*
    for(i=1;i<=N;i++)
        cout<<weight[i]<<" ";
    */
    for(i=1;i<=N;i++)//初始化箱子容量
        box[i]=100;
    for(i=1;i<=N;i++)//遍历所有的物品,找到对应的箱子
    {
        int index_box;//用于存储找到的箱子序号
        for(j=1;j<=N;j++)//遍历所有的箱子
        {
            if(box[j]>=thing[i].weight)//当找到合适的箱子时
            {
                index_box = j;//记录编号
                box[j]-=thing[i].weight;//将物品放入箱子
                break;
            }
        }
        thing[i].index=index_box;//标记该物品对应的箱子编号
    }
    for(i=1;i<=N;i++)//显示所有物品及其箱子编号
        cout<<thing[i].weight<<" "<<thing[i].index<<endl;
    for(i=1;i<=N;i++)//统计使用过的箱子数目
    {
        if(box[i]!=100)
            num++;
    }
    cout<<num<<endl;//输出使用的箱子总数
    return 0;
}


http://www.kler.cn/a/396493.html

相关文章:

  • 二五、pxe自动装机
  • 机器学习 ---线性回归
  • gitHub常用操作
  • 《动手学深度学习》中d2l库的安装以及问题解决
  • Linux服务器定时执行jar重启命令
  • SSE与WebSocket与MQTT
  • [白月黑羽]关于仿写类postman功能软件题目的解答
  • Leetcode 每日一题 125.验证回文串
  • PLC如何支持GEM300标准?SECS/GEM通讯协议
  • 卷积层(CNN)全面解析
  • 如何使用 python 中的 Pillow 创建可自定义的图标生成器
  • 软件工程视角:Git 基础与实践
  • NLP开发常见问题
  • 微信小程序之路由跳转传数据及接收
  • JWTUtil工具类
  • 加深深度学习矩阵计算理解--用人类直觉 走进线性代数(非应试)
  • 自存 关于RestController请求传参数 前端和后端相关
  • web——upload-labs——第五关——大小写绕过绕过
  • HarmonyOS本地存储-Preferences(用户首选项)的使用
  • MATLAB 使用教程 —— 常用函数
  • Git 时想要放弃当前的 commit 操作
  • Javaweb-day11案例(文件)
  • 基于stm32的智能变频电冰箱系统
  • 网络安全练习之 ctfshow_web
  • 力扣 LeetCode 232. 用栈实现队列(Day5:栈与队列)
  • STM32F4 RTC实时时钟STM32 Cube实例