首页 > 编程语言 >GESP4级考试语法知识(贪心算法(五))

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

时间:2024-11-17 11:45:13浏览次数:3  
标签:box 箱子 weight int thing 算法 && 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;
}

标签:box,箱子,weight,int,thing,算法,&&,GESP4,贪心
From: https://blog.csdn.net/weixin_60445850/article/details/143786123

相关文章

  • AI在智能生产中的应用与算法研究
    摘要在工业4.0背景下,人工智能(AI)技术正在加速生产过程的智能化转型,推动制造业向数字化、自动化和智能化方向发展。本文延续庹忠曜所提出的《工业4.0时代下的人工智能新发展》的思想,从AI在智能生产中的主要应用场景入手,包括生产优化、质量控制、设备维护、智能供应链管理等,探讨......
  • AI在智能物流中的应用与算法研究
    摘要        随着人工智能(AI)技术的迅猛发展,智能物流系统在提升效率、降低成本和优化供应链管理方面展现出巨大的潜力。本文延续庹忠曜所提出的《工业4.0时代下的人工智能新发展》的思想,综述了AI在智能物流中的应用,重点介绍了需求预测、路径优化、仓储管理、分拣与配送......
  • KMP算法
    字符串匹配算法:利用最大相等的前后缀进行更好的匹配#include<iostream>#defineintlonglongusingnamespacestd;constintN=1e6+10;intm,n,ne[N],j;charp[N],s[N];signedmain(){ cin>>n>>p+1>>m>>s+1;//p+1是指从第二个索引开始读入,即......
  • 数据结构与算法刷题(参考代码随想录结构,C、C++实现)
    目录数组数组理论基础二分查找移除元素有序数组的平方长度最小的子数组螺旋矩阵Ⅱ总结篇链表1.链表理论基础2.移除链表元素3.设计链表4.反转链表5.两两交换链表中的节点6.删除链表的倒数第N个节点7.链表相交8.环形链表Ⅱ9.总结篇哈希表1.哈希表理论基础2.有效的字母异位词3.两个数......
  • python taichi 加速 dither仿色抖动算法
    教程9种dither算法与历史发展wiki:bayer有序抖动python生成任意规模bayer矩阵知乎:dither启发的艺术效果,半调/柱形taichindarray文档代码实现taichi_dither.py#!/bin/envpythonimporttaichiastiimportnumpyasnpimportcv2fromcopyimportdeepcopyti.init(......
  • 在MATLAB中实现自适应滤波算法
    自适应滤波算法是一种根据信号特性自动调整滤波参数的数字信号处理方法,其可以有效处理噪声干扰和信号畸变问题。在许多实时数据处理系统中,自适应滤波算法得到了广泛应用。在MATLAB中,可以使用多种方法实现自适应滤波算法。本文将介绍自适应滤波算法的基本原理和在MATLAB中实现自......
  • 构建最小生成树(Prim算法和Kruskal算法)
    其中克鲁斯卡尔算法中判断是否发生自环也可采用DFS和BFS判断,这里采用是并查集#include<iostream>#include<algorithm>#include<vector>usingnamespacestd;#defineINF100000000;classEdge{public:intx1,x2;//边的两个顶点intw;//权Edge(intX1......
  • 代码随想录算法训练营第四十七天|Day47 单调栈
    739.每日温度https://programmercarl.com/0739.%E6%AF%8F%E6%97%A5%E6%B8%A9%E5%BA%A6.html思路int*dailyTemperatures(int*temperatures,inttemperaturesSize,int*returnSize){int*answer=(int*)malloc(temperaturesSize*sizeof(int));int*sta......
  • 代码随想录算法训练营第四十八天|Day48 单调栈
    42.接雨水https://programmercarl.com/0042.%E6%8E%A5%E9%9B%A8%E6%B0%B4.html思路inttrap(int*height,intheightSize){intans=0;intleft=0,right=heightSize-1;intleftMax=0,rightMax=0;......
  • 算法沉淀一:双指针
    目录前言:双指针介绍对撞指针快慢指针题目练习1.移动零2.复写零3.快乐数4.盛水最多的容器5.有效三角形的个数6.和为s的两个数7.三数之和8.四数之和前言:此章节介绍一些算法,主要从leetcode上的题来讲解,讲解内容为做题思路,附加代码。欢迎与我大家一起学习共同进......