华为OD-2024年E卷-虚拟理财游戏[100分] -- python

问题描述:

在一款虚拟游戏中生活,你必须进行投资以增强在虚拟游戏中的资产以免被淘汰出局。现有一家Bank,它提供有若干理财产品 m 个,风险及投资回报不同,你有 N(元)进行投资,能接收的总风险值为X。你要在可接受范围内选择最优的投资方式获得最大回报。

备注

在虚拟游戏中,每项投资风险值相加为总风险值;

在虚拟游戏中,最多只能投资2个理财产品;

在虚拟游戏中,最小单位为整数,不能拆分为小数;

投资额*回报率=投资回报

输入描述

第一行:

产品数(取值范围1,20)

总投资额(整数,取值范围1, 10000)

可接受的总风险(整数,取值范围1,200)

第二行:产品投资回报率序列,输入为整数,取值范围1,60

第三行:产品风险值序列,输入为整数,取值范围1, 100

第四行:最大投资额度序列,输入为整数,取值范围1, 10000

输出描述

每个产品的投资额序列

复制代码
5 100 10
10 20 30 40 50
3 4 5 6 10
20 30 20 40 30

0 30 0 40 0

解题思路:

输入有很多的变量以及较多的限制条件,依次处理即可

核心就一个公式:回报 = 回报率 * 投资额(风险<=最大风险,投资额<=最大投资额)

然后求最大回报

选择一个产品:依次计算每一个产品的回报

选择两个产品:

  1. 两者风险和 <= 最大风险
  2. 两者投资额 <= 最大投资额;两者投资额 > 最大投资额:优先较大回报率的投满,较小回报率的 = 最大投资 - 投满的
  3. 用ans列表记录投资列表,先初始化为全0,然后更新该ans列表

代码实现:

python 复制代码
m,N,X = map(int,input().split())#产品数、投资额、风险
r_ra = list(map(int,input().split()))#回报率
d_X = list(map(int,input().split()))#风险
max_N = list(map(int,input().split()))#最大投资额
ans = []#记录投资额列表
curr,curr_m = 0,0#当前回报、最大回报
#投资两个产品
for i in range(m):
    for j in range(i+1,m):
        a = max_N[i]
        b = max_N[j]
        if d_X[i]+d_X[j] <= X:
            if max_N[i]+max_N[j] >= N:#选择回报率更大的
                if r_ra[i] > r_ra[j]:
                    b = N-max_N[i]
                else:
                    a = N-max_N[j]
            curr = a*r_ra[i] + b*r_ra[j]
            if curr > curr_m:#当前回报更大,更新投资列表
                ans = [0]*m
                curr_m = curr
                ans[i] = a
                ans[j] = b
#只投资一个产品
for i in range(m):
    if d_X[i] <= X and max_N[i] <= N:
        curr = r_ra[i]*max_N[i]
    if curr > curr_m:
        ans = [0]*m
        curr_m = curr
        ans[i] = max_N[i]
print(' '.join(map(str,ans)))
相关推荐
超级架构师2 分钟前
让 Fortran 模型自己调用 Agent:原生 Fortran 2008 实现深度剖析
人工智能·python·架构·机器人·开源·fortran
小蒜学长6 分钟前
基于Django+Vue喵汪联盟宠物领养系统的设计与实现(代码+数据库+LW)
后端·python·django·宠物领养系统·流程规范化
云边有个稻草人16 分钟前
Prometheus Pushgateway教程:离线任务指标上报、Shell与Python示例、远程访问
开发语言·python·prometheus
fanruitian30 分钟前
pycharm 使用anaconda
ide·python·pycharm
Dwzun32 分钟前
基于SpringBoot3+Vue3的油莎豆种植管理系统
java·前端·vue.js·spring boot·后端·python·计算机网络
代码山河9 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
在世修行9 小时前
智学文枢:题目流水线
python·多线程·状态机·pyside
梯度下降者10 小时前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
“AI国潮设计-小江”11 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
benchmark_cc12 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash