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

[蓝桥杯 2024 省 A] 训练士兵

题目 

链接:P10387 [蓝桥杯 2024 省 A] 训练士兵 - 洛谷

注意细节:第一行是n和S,然后是“接下来的n行”,这n行士兵,分别是金币数和次数 

思路

 发现说,一般来说是团购价格<单独训练价格,是尽可能先团购,再单独训练

贪心+排序的思路,先贪心,找到最大团购次数,然后剩下的再单独训练

代码

n,S=map(int,input().split())
lst=[]
for i in range(n):
    p,c=map(int,input().split())
    lst.append([p,c])
lst.sort(key=lambda x:x[1]) # 默认升序
num=lst[0][1]
pri=num*S # 团购次数*价钱
for j in range(1,n):
     pri+=lst[j][0]*(lst[j][1]-num)
print(pri)

反思

  1. 看懂题目
    • 组团训练 VS 单独训练
    • 输入格式。第一行为n和S,n为成员数,S为组团训练价钱;接下来n行是p和c,即单次价钱和训练次数
  2. 理清思路
    • 当人数充足时,团体训练更为划算,所以我们要优先团体训练,剩下再单独训练
  3. 代码如何输入数据
    • `a,b=map(int,input().split())`-->表示输入时为两个数,用空格间隔{map表示映射,输入的为int类型,input输入,split分割,默认空格分割},分别赋值给a和b
    • 注意看看清楚,一定是先读取n和S,再根据n,决定后面需要输入多少次
  4. 掌握排序
    • 我输入p和c时,使用多次循环,每次循环中为[p,c],再使用append加入列表
    • 在分析是我们知道,要确定最大团购数->最小训练数,此时我们要对每个列表的第二个元素进行排序,所以要确定排序规则key,`lst.sort(key=lambda x:x[1])`,默认是升序
http://www.dtcms.com/a/108476.html

相关文章:

  • 虚拟试衣间-云尚衣橱小程序-衣橱管理实现
  • 算法:二进制求和
  • 从零构建大语言模型全栈开发指南:第四部分:工程实践与部署-4.3.3低代码开发:快速构建行业应用(电商推荐与金融风控案例)
  • Python 驱动周立功200U收发报文
  • 国产系统服务器识别不到SATA盘
  • STM32学习笔记之RCC模块(实操篇)
  • 横扫SQL面试——中位数问题
  • git tag
  • Linux 中CIFS和NFS使用说明
  • MCP学习总结
  • 基于RapidIO接口的DSP+GPU工业AI实时计算解决方案
  • ‘conda‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
  • 【YOLOv8】YOLOv8改进系列(12)----替换主干网络之StarNet
  • 系统安全——文件监控-FileMonitor
  • 数据在内存中存储(C语言)
  • 杂篇-行业分类一二-2(通、专用设备制造,汽车制造)
  • (done) MIT6.824 Lecture 02 - RPC and Threads
  • stm32:sg90 和 mg90s舵机学习
  • Python----计算机视觉处理(Opencv:道路检测之提取车道线)
  • 好玩有趣的github开源项目分享(持续更新)
  • 【MySQL基础】 JSON函数入门
  • 代码随想录-动态规划18
  • 如何学习C++以及C++的宏观认知
  • AI:机器学习模型-线性回归
  • 清华大学:网络大模型NetGPT研究进展(2025)
  • 深入解析JavaScript混淆加密与Python逆向调用实战-题八
  • 蓝桥杯-算法基础-For循环
  • [CISSP] [5] 保护资产安全
  • Mybatis 如何自定义缓存?
  • UML 关系探秘:理论与实践双维度剖析