OD E卷 - 实现 【虚拟理财游戏】

题目

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

  • 每项投资风险值相加为总风险值;
  • 最多只能投资两个理财产品;
  • 最小单位为整数;
  • 投资额 * 回报率 = 投资回报;

输入描述:
第一行:产品数【1,20】,总投资额(整数,【1,100001】),可接受的总风险(整数,【1,200】)
第二行:产品投资回报率序列(整数,【1,100】)
第三行:产品风险值序列(整数,【1,100】)
第四行:最大投资额序列(整数,【1,1000】)
输出描述:
最优方案时,每个产品的投资额序列

示例:
输入:
5 100 10
10 20 30 40 50
3 4 5 6 10
20 30 20 40 30
输出:
0 30 0 40 0

 

解题代码

因为只有投资一种产品、投资两种产品 两种情况,暴力求解即可;


params = [int(x) for x in input().strip().split()]
m = params[0]  # 产品数
n = params[1]  # 钱数
x = params[2]  # 能接受的最大风险# 回报率
back_rate = [int(x) for x in input().strip().split()]
# 风险
risks = [int(x) for x in input().strip().split()]
# max_invest
max_invest = [int(x) for x in input().strip().split()]# 每个产品的最大回报值
max_earns = [max_invest[i] * back_rate[i] for i in range(m)]
max_value = 0# 暴力求解
# 选1个产品时的最大回报
target = 0
i = 0
while i < m:# 风险满足 且 投资的钱满足if risks[i] <= x and max_invest[i] <= n:if max_earns[i] > max_value:max_value = max_earns[i]target = i  # 投资的产品索引i += 1# 选两个产品的最大回报
k = 0
a = 0
b = 0
flag = False  # 标志选两个产品时是否比一个产品时获取回报大
while k < m - 1:for j in range(k + 1, m):if risks[k] + risks[j] <= x and max_invest[k] + max_invest[j] <= n:if max_earns[k] + max_earns[j] > max_value:max_value = max_earns[k] + max_earns[j]a = kb = jflag = Truek += 1output_str = ""
if flag:for j in range(m):if j == a:output_str += str(max_invest[j]) + " "elif j == b:output_str += str(max_invest[j]) + " "else:output_str += str(0) + " "
else:for j in range(m):if j == target:output_str += str(max_invest[j]) + " "else:output_str += str(0) + " "print(output_str[:-1]) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/62670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle RAC各版本集群总结和常用命令汇总

oracle RAC学习 RAC介绍 RAC&#xff1a;高可用集群&#xff0c;负载均衡集群&#xff0c;高性能计算集群 RAC是⼀种⾼可⽤&#xff0c;⾼性能&#xff0c;负载均衡的share-everything的集群 8i:内存融合雏形 内存融合雏形&#xff08;Oracle Parallel Server&#xff09;…

数据资产管理是什么?为什么重要?核心组成部分(分类分级、登记追踪、质量管理、安全合规)、实施方法、未来趋势、战略意义

文章目录 一、引言&#xff1a;数据的新时代二、什么是数据资产管理&#xff1f;2.1 定义2.2 核心功能 三、为什么数据资产管理至关重要&#xff1f;3.1 面对的数据管理挑战 四、数据资产管理的核心组成部分4.1 数据分类与分级4.2 数据资产登记与追踪4.3 数据质量管理4.4 数据安…

C++高阶算法[汇总]

&#xff08;一&#xff09;高精度算法概述 高精度算法是指能够处理超出常规数据类型表示范围的数值的算法。在 C 中&#xff0c;标准数据类型通常有固定的位数和精度限制&#xff0c;而高精度算法可以解决大数运算、金融计算和科学计算等领域的问题。 &#xff08;二&#x…

springboot365高校疫情防控web系统(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;高校疫情防控的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为…

Electron实现打开子窗口加载vue路由指定的组件页面白屏

白屏有两种情况&#xff1a; Vue项目使用的history路由的话就会显示空白&#xff0c;加载不出来路由&#xff0c;也不能跳转路由 这种情况看我上一篇文章Electron vue3 打包之后不能跳转路由-CSDN博客 Electron中已经能正常加载页面跳转路由&#xff0c;但是创建子窗口加载子页…

智能探针技术:实现可视、可知、可诊的主动网络运维策略

网络维护的重要性 网络运维是确保网络系统稳定、高效、安全运行的关键活动。在当今这个高度依赖信息技术的时代&#xff0c;网络运维的重要性不仅体现在技术层面&#xff0c;更关乎到企业运营的方方面面。网络运维具有保障网络的稳定性、提升网络运维性能、降低企业运营成本等…

Django Auth的基本使用

auth 组件 导包 from django.contrib import auth 1. 登录 对比用户和秘密是否正确 user_obj auth.authenticate(request, usernameusername, passwordpassword) 保存用户信息 (存到 djang_session表中) auth.login(request, user_obj) 1.1 def login(request): …

泷羽sec-shell脚本(全) 学习笔记

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…

鸿蒙学习使用模拟器运行应用(开发篇)

文章目录 1、系统类型和运行环境要求2、创建模拟器3、启动和关闭模拟器4、安装应用程序包和上传文件QA:在Windows电脑上启动模拟器&#xff0c;提示未开启Hyper-V 1、系统类型和运行环境要求 Windows 10 企业版、专业版或教育版及以上&#xff0c;且操作系统版本不低于10.0.18…

Web API - Clipboard

Clipboard API &#xff0c;它允许我们与用户的剪贴板进行交互&#xff0c;实现复制和粘贴的功能。 Clipboard API 提供了以下方法&#xff0c;用于实现复制和粘贴&#xff1a; navigator.clipboard.writeText(text)&#xff1a;这个方法用于将给定的文本复制到剪贴板。如果操…

MySQL 利用JSON特性完成复杂数据存储和查询

情景描述 下面一个应用场景&#xff0c;是数据库需要存储文库类的信息。文库分多个种类&#xff0c;比如图书类、论文类等多个类别&#xff0c;每个类别有不同的字段信息。 常规处理方法 要在单张表中去存储不同种类的文库数据&#xff0c;表就会变成这样的结构&#xff1a; …

【数据结构】哈希 ---万字详解

unordered系列关联式容器 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到log_2 N&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好 的查询是&#xff0c…

单例模式的理解和实践

在软件开发中&#xff0c;设计模式是开发者在特定情境下&#xff0c;对常见问题的通用解决方案。这些模式帮助开发者以更高效、可维护的方式编写代码。其中&#xff0c;单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保一个类只有一个…

zerotier实现内网穿透

zerotier的内网穿透 前言一、zerotier的框架认知二、客户端安装设置1.linux2.windows 前言 摸索了一阵&#xff0c;看了好几篇&#xff0c;没有讲清楚。争取这次说清楚。 一、zerotier的框架认知 先认识一下zerotier的框架&#xff0c;这样如何处理就很好理解了。 首先上zero…

windows11 使用体验记录

好的地方&#xff1a; UI上字体风格貌似更好看了&#xff0c;文件夹增加了多个标签&#xff0c;类似于浏览器既可以打开多个窗口&#xff0c;也可以在同一个窗口中打开多个标签页 不好的地方&#xff1a; 桌面右下角点击日期时间&#xff0c;显示日期&#xff0c;时间呢&…

牛客周赛 Round 70 A-E

本期封面原图 画师村カルキ 牛客周赛 Round 70 五题 A - 小苯晨跑 思路 没啥好说的 代码 // // Created by Swan416 on 2024-12-01 18:57. // #include <bits/stdc.h> #define maxOf(a) *max_element(a.begin(),a.end()) #define minOf(a) *min_element(a.begin(),a.…

C++20: 像Python一样split字符串

概要 Python 的字符串天生支持 split( ) 操作&#xff0c;支持单个字符或字符串作为分隔符。 C 在这方面显得很笨拙&#xff0c;但是在 C20 下经过一番尝试&#xff0c;还是能够提供类似的简洁调用。 Python 代码 s 0,11,336,23,370nums s.split(,) for n in nums:print(n…

oracle数据库日常操作

1、执行SQL语句后不显示PL/SQL procedure successfully completed set feedback off; 2、显示实例名称 echo "set sqlprompt \"_user_connect_identifier> \"" >> $ORACLE_HOME/sqlplus/admin/glogin.sql 3、客户端尝试连接到服务器时发生超时 …

【Redis篇】Hash的认识以及相关命令操作

目录 前言 基本命令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET HLEN HSETNX HINCRBY HINCRBYFLOAT 内部编码 高内聚&#xff0c;低耦合 前言 可以看出&#xff1a; Redis 的 Hash 是一个键&#xff08;key&#xff09;下包含多个字段&#xff08;field…

可解释机器学习 | Python实现LGBM-SHAP可解释机器学习

机器学习 | Python实现GBDT梯度提升树模型设计 目录 机器学习 | Python实现GBDT梯度提升树模型设计基本介绍模型使用参考资料基本介绍 LightGBM(Light Gradient Boosting Machine)是一种基于决策树的梯度提升框架,是一种高效的机器学习模型。SHAP(SHapley Additive exPlan…