首页 > 编程语言 >算法--圣诞节的礼物

算法--圣诞节的礼物

时间:2024-11-20 17:44:29浏览次数:3  
标签:box 圣诞节 weight -- list value 算法 details unit

# 获取用户输入的箱数和马车的最大承受重量
box_count = int(input('箱数: '))
max_capacity = int(input('最大承受重量: '))

# 初始化列表,用于存储每箱的单位重量价值和详细信息
unit_value_list = []
box_details_list = []

# 循环获取每个箱子的总价值和总重量,并计算单位重量价值
for i in range(1, box_count + 1):
    box_value = int(input(f'第{i}箱的总价值: '))
    box_weight = int(input(f'第{i}箱的总重量: '))
    unit_value = round(box_value / box_weight, 1)  # 计算每箱单位重量的价值
    unit_value_list.append(unit_value)  # 添加到列表,用于之后做比较
    box_details_list.append([box_weight, unit_value, 0])  # 添加箱子详细信息

# 对单位重量价值进行降序排列
unit_value_list.sort(reverse=True)

# 初始化总价值和当前总重量
total_value = 0
current_weight = 0

# 遍历排序后的单位重量价值列表
for i in range(len(unit_value_list)):
    for k in range(len(box_details_list)):
        if box_details_list[k][2] == 0:  # 如果箱子未被取走
            if unit_value_list[i] == box_details_list[k][1]:  # 如果找到对应的箱子
                # 尝试添加当前箱子的重量
                temp_weight = current_weight + box_details_list[k][0]
                if temp_weight > max_capacity:  # 如果超过最大承受重量
                    # 减少重量直到不超过最大承受重量
                    while temp_weight > max_capacity:
                        box_details_list[k][0] -= 1
                        temp_weight -= 1
                current_weight = temp_weight  # 更新当前总重量
                total_value += box_details_list[k][0] * unit_value_list[i]  # 更新总价值
                box_details_list[k][2] = 1  # 标记箱子已被取走
                break  # 跳出内层循环

# 输出能带走的糖果的最大价值
print(f'能带走的糖果的最大价值为: {total_value}')
输出结果:

标签:box,圣诞节,weight,--,list,value,算法,details,unit
From: https://blog.csdn.net/qq_68809241/article/details/143857834

相关文章

  • CSS入门(主要讲解字体,链接,列表,表格)
    一.CSS字体1.CSS字体属性要定义字体的加粗,大小,文字样式2.设置字体系列font-family属性设置文本的字体系列。font-family属性应该设置几个字体名称作为一种"后备"机制,如果浏览器不支持第一种字体,他将尝试下一种字体。注意:如果字体系列的名称超过一个字,它必须用引号,如Fo......
  • echarts 绑定事件处理函数
    echartson文档echartsInstance.on(eventName,)https://www.cnblogs.com/Cxymds/p/17491486.htmlhttps://blog.csdn.net/weixin_42079403/article/details/137536279https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&tn=baiduhome_pg&wd=ech......
  • 算法--移除k个数字
    classSolution:defremoveknums(self,nums,k):"""从表示数字的字符串中移除k个最小的数字。:paramnums:表示数字的字符串:paramk:需要移除的数字个数:return:移除k个最小数字后的字符串"""s......
  • 香港服务器套餐多样性正解看过来呢?
    首先什么是香港服务器香港服务器就是机房在香港地区,由在香港的机房管理的服务器。实际上香港服务器和内地服务器本身没有什么区别,香港服务器非常适合那些用户群体在香港或者亚太地区的,现如今发展非常的快,香港带宽很多商家也有足够的资源。香港机房国际出口带宽更是非常充足,香港......
  • SpringBoot+Docker +Nginx 部署前后端项目
    部署SpringBoot项目(通关版)一、概述使用 java-jar 命令直接部署项目的JAR包和使用Docker制作镜像进行部署是两种常见的部署方式。以下是对这两种方式的概述和简要的优劣势分析:1.1、使用 java-jar 命令直接部署项目的JAR包概述:通过 java-jar 直接部署项目的JA......
  • cf round 863 B
    XOR=Average题目https://codeforces.com/contest/1758/problem/B主要意思给定一整数n,要使n个数的异或=n个数之和的平均值,输出这n个数思路n是奇数的时候n个相同的数(设为a)的异或也为a,n个a之和的平均值也为an为偶数的时候n个相同的数(设为a)的异或......
  • Java小练(数组)
    题目要求:给你一个整数数组“arr”,请你判断数组中是否存在连续三个都是奇数的情况:如果存在请返回“true”;否则返回“false”1.导入要用到的scanner库importjava.util.Scanner;2.获取输入的数据importjava.util.Scanner;publicstaticText_11_19_3{publicstati......
  • JAVA对接百度翻译
    官方登录链接:百度翻译开放平台(baidu.com)注册教程:百度翻译开放平台(baidu.com)创建TranslateUtils工具类importorg.apache.commons.codec.digest.DigestUtils;importorg.apache.http.HttpResponse;importorg.apache.http.client.HttpClient;importorg.apache.ht......
  • 「云之家个性化开发」将客户输入的身份证中的出生年月性别提取出来赋值到当前页面的控
    将客户输入的身份证中的出生年月性别提取出来赋值到当前页面的控件上场景入职填写身份证号时,输入身份证号,自动填充出生年月和性别。模板配置个性化代码块示例代码<scripttype="text/javascript">//解析身份证号的函数functionparseIdCard(idCard){......
  • 博弈论:公平组合游戏(Nim 游戏 & SG 定理)学习笔记
    博弈论:公平组合游戏(Nim游戏&SG定理)学习笔记公平组合游戏定义:两人轮流以最优方式操作,两人的操作方式相同。每次操作游戏状态必须改变,不能操作者输,另一人赢。每个游戏状态不能重复到达。我们把每个状态看作一个点,每个状态的点向它后继状态的点连有向边,可以生成一张DAG(......