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

笔试-最大利润

应用

商人经营一家店铺,共有N种商品,由于仓库限制,每件商品的最大持有数量是item[i],每种商品的价格是price[i][day]。
通过对商品的买进、卖出获取利润,请给出商人在days天内能获取的最大的利润。

实现

N = int(input("请输入商品种类:"))
days = int(input("请输入售卖天数:"))

str = input("请输入每种商品的最大持有数量:").split()
item = [int(i) for i in str]

prices = []
for i in range(0, N):
    s = input(f"请输入第{i}种商品的每日价格:").split()
    r = [int(i) for i in s]
    prices.append(r)
# print(prices)

revenue = [[] for n in prices]
# 每种商货的单品,在第i天买进,分别在第i天、第i+1天……第n-1天卖出,此类操作的营收
for n in range(0, len(prices)):
    for i in range(0, days):
        for j in range(i, days):
            
            income = prices[n][j] - prices[n][i]
            # 不做无效或亏本生意
            if income > 0:
                # 种类,买入天、卖出天、收入
                revenue[n].append([i, j, income])
# print(revenue) # 三维

# 按照收入从大到小排序
for n in range(0, len(revenue)):
    for i in range(0, len(revenue[n])):
        for j in range(0, len(revenue[n])):
            # 不能自己与自己比较
            if i != j:
                if revenue[n][i][-1] > revenue[n][j][-1]:
                    revenue[n][j], revenue[n][i] = revenue[n][i], revenue[n][j]
# print(revenue)

sum = 0
# 计算利润
for n in range(0, len(revenue)):
    # 按照种类求和
    s_kind = 0
    # 确保非空
    if revenue[n]:
        for i in range(0, len(revenue[n])):
            if i == 0:
                s_kind = s_kind + revenue[n][i][-1] * item[n]
                sold_day = revenue[n][i][1]
            else:
                # 每种商品的持有量,按照仓储上限计算,所以:当前方案的买入日 >= 上次已实施方案的卖出日
                if  revenue[n][i][0] >= sold_day:
                    s_kind = s_kind + revenue[n][i][-1] * item[n]
                    sold_day = revenue[n][i][1]
    # 全种类求和
    sum = sum + s_kind
print(sum)
请输入商品种类:3
请输入售卖天数:3
请输入每种商品的最大持有数量:4 5 6
请输入第0种商品的每日价格:1 2 3
请输入第1种商品的每日价格:4 3 2
请输入第2种商品的每日价格:1 5 3
32

相关文章:

  • @Autowired和 @Resource
  • Linux命令大全完整版
  • 深入理解 SQL 中的 DATEDIFF 函数
  • Level DB --- Table
  • React Native 0.76正式版发布,带来多项目更新
  • from flask_session import Session 为什么是Session(app)这么用?
  • 线性模型 - 支持向量机
  • QT入门--信号和槽
  • Spring 源码解读(二)——BeanDefinition
  • 基于 go-wrk 在 Windows 环境下对 Go Web 应用进行 HTTP 压力测试
  • 选与不选?从暴力枚举到背包dp
  • 第13篇:Vue Router基础使用
  • 旋转位置编码(ROPE)详解:从Transformer到现代前沿
  • 管道-过滤器、隐式调用、解释器架构风格对比
  • Spring——SpringSecurity开发经验实战
  • 给小米/红米手机root(工具基本为官方工具)——KernelSU篇
  • 【Python量化金融实战】-第1章:Python量化金融概述:1.1量化金融的定义与发展历程
  • QListView实现文件选择功能
  • JAVAEE一>Spring IoC和DI详解
  • 2024全国青少年信息素养大赛python复赛真题--装错信封
  • 男女一夜做受视频最新网站/seo怎么优化关键词排名培训
  • 定制高端网站建设公司/美国疫情最新情况
  • 用什么系统做威客网站/网站优化查询
  • 网线制作颜色顺序/短视频seo询盘系统
  • 专业重庆房产网站建设/最简单的网页制作
  • 河南省住房城乡建设门户网站/合肥网站排名提升