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

OD C卷 - 执行任务赚积分

执行任务赚积分(100)

  • 有n个任务需要处理,同一时间只能处理一个任务,处理每个任务所需的时间固定为1;
  • 每个任务都有最晚处理时间和积分,在最晚处理时间之前处理完成才可以获取该任务的积分;
  • 在有限的时间t内,可以获取的最多积分;

输入描述:
第一行输入n,【1,100】
第二行输入t,表示可用于处理任务的总时间单位,【1,100】
随后的n行,每行两个数值s v,分别表示最晚处理时间和积分;s在【1,100】之间,v在【0,100000】之间;
输出描述:
可获取的最多积分

示例1
输入:
4
3
1 2
1 3
1 4
1 5
输出
5
说明:
所有任务只能在1这个最晚时间处理,取最大积分的任务即可;

示例1
输入:
4
3
1 2
1 3
1 4
3 5
输出:
9
说明:
在1这个时间单位处理积分最多为4的任务;在3这个时间单位处理积分为5的任务,还富余一个时间单位无任务处理;所以最大积分为4+5=9

示例3
输入:
5
2
1 2
1 3
2 5
2 7
4 80
输出:
87


import queue# 总任务数
n = int(input().strip())
# 可处理任务的总时间单位
t = int(input().strip())# 存储任务
tasks = []
for i in range(n):tasks.append(list(map(int, input().strip().split())))# 任务按照 最晚处理时间 升序排序
tasks = sorted(tasks, key=lambda i: i[0])print("xxx", tasks)
# 最大积分
max_score = 0
my_queue = queue.PriorityQueue()
time1 = 0
i = 0
while True:# 任务索引超出if i >= n:while my_queue.qsize() > t:max_score -= my_queue.queue[0]my_queue.get()print(max_score)breakelse: # 任务索引内if time1 < tasks[i][0]:my_queue.put(tasks[i][1])time1 += 1max_score += tasks[i][1]else:if my_queue.qsize() > 0:top = my_queue.queue[0]if tasks[i][1] > top:my_queue.get()my_queue.put(tasks[i][1])max_score += tasks[i][1] - topi += 1

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 看不见的硝烟:中国网络安全三十年沉浮史
  • C++ 操作Git仓库
  • 【C语言版】数据结构教程(一)绪论(上)
  • 1.GPIO
  • YAML语法格式详解
  • 为什么要使用双亲委派机制?
  • 一文搞懂GIT
  • 本地部署持续集成工具Jenkins并配置公网地址实现远程自动化构建
  • 【Android】数据存储之SQLite数据库知识总结
  • C语言数据在内存中的存储超详解
  • nacos 2.3.2 若依使用mysql
  • 智慧环卫可视化:科技赋能城市清洁管理
  • Java--二,十,十六进制间的相互转换
  • 【初阶数据结构篇】归并排序和计数排序(总结篇)
  • Python面试题:结合Python技术,如何使用Scrapy构建爬虫框架
  • ES6指北【2】—— 箭头函数
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Java反射-动态类加载和重新加载
  • Linux CTF 逆向入门
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Python爬虫--- 1.3 BS4库的解析器
  • 从重复到重用
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端js -- this指向总结。
  • 手机端车牌号码键盘的vue组件
  • 通过几道题目学习二叉搜索树
  • Linux权限管理(week1_day5)--技术流ken
  • 积累各种好的链接
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • # Kafka_深入探秘者(2):kafka 生产者
  • #includecmath
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (七)Knockout 创建自定义绑定
  • (转)我也是一只IT小小鸟
  • (转载)CentOS查看系统信息|CentOS查看命令
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .Net Core 微服务之Consul(二)-集群搭建
  • .NET Core 项目指定SDK版本
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET NPOI导出Excel详解
  • .NET/C# 的字符串暂存池
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .net反编译工具
  • .net开发日常笔记(持续更新)
  • .NET企业级应用架构设计系列之技术选型
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • [ Linux ] Linux信号概述 信号的产生
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [C++] new和delete