【CSP】202303-2_垦田计划Python实现

文章目录

    • @[toc]
      • 试题编号
      • 试题名称
      • 时间限制
      • 内存限制
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入1
      • 样例输出1
      • 样例解释
      • 样例输入2
      • 样例输出2
      • 样例解释
      • 子任务
      • `Python`实现

试题编号

202303-2

试题名称

垦田计划

时间限制

1.0s

内存限制

512.0MB

问题描述

  • 顿顿总共选中了 n n n块区域准备开垦田地,由于各块区域大小不一,开垦所需时间也不尽相同。据估算,其中第 i i i ( 1 ≤ i ≤ n ) (1 \leq i \leq n) (1in)区域的开垦耗时为 t i t_{i} ti天,这 n n n块区域可以同时开垦,所以总耗时 t T o t a l t_{Total} tTotal取决于耗时最长的区域,即:

t T o t a l = max ⁡ { t 1 , t 2 , ⋯ , t n } t_{Total} = \max\set{t_{1} , t_{2} , \cdots , t_{n}} tTotal=max{t1,t2,,tn}

  • 为了加快开垦进度,顿顿准备在部分区域投入额外资源来缩短开垦时间,具体来说:
    • 在第 i i i块区域每投入 c i c_{i} ci单位资源,便可将其开垦耗时缩短 1 1 1
    • 耗时缩短天数以整数记,即第 i i i块区域投入资源数量必须是 c i c_{i} ci的整数倍
    • 在第 i i i块区域最多可投入 c i × ( t i − k ) c_{i} \times (t_{i} - k) ci×(tik)单位资源,将其开垦耗时缩短为 k k k
    • 这里的 k k k表示开垦一块区域的最少天数,满足 0 < k ≤ min ⁡ { t 1 , t 2 , ⋯ , t n } 0 < k \leq \min\set{t_{1} , t_{2} , \cdots ,t_{n}} 0<kmin{t1,t2,,tn};换言之,如果无限制地投入资源,所有区域都可以用 k k k天完成开垦
  • 现在顿顿手中共有 m m m单位资源可供使用,试计算开垦 n n n块区域最少需要多少天

输入格式

  • 从标准输入读入数据
  • 输入共 n + 1 n + 1 n+1
  • 输入的第一行包含空格分隔的三个正整数 n n n m m m k k k,分别表示待开垦的区域总数、顿顿手上的资源数量和每块区域的最少开垦天数
  • 接下来 n n n行,每行包含空格分隔的两个正整数 t i t_{i} ti c i c_{i} ci,分别表示第 i i i块区域开垦耗时和将耗时缩短 1 1 1天所需资源数量

输出格式

  • 输出到标准输出
  • 输出一个整数,表示开垦 n n n块区域的最少耗时

样例输入1

4 9 2
6 1
5 1
6 2
7 1

样例输出1

5

样例解释

  • 如下表所示,投入 5 5 5单位资源即可将总耗时缩短至 5 5 5天,此时顿顿手中还剩余 4 4 4单位资源,但无论如何安排,也无法使总耗时进一步缩短
i i i基础耗时 t i t_{i} ti缩减 1 1 1天所需资源 c i c_{i} ci投入资源数量实际耗时
1 1 1 6 6 6 1 1 1 1 1 1 5 5 5
2 2 2 5 5 5 1 1 1 0 0 0 5 5 5
3 3 3 6 6 6 2 2 2 2 2 2 5 5 5
4 4 4 7 7 7 1 1 1 2 2 2 5 5 5

样例输入2

4 30 2
6 1
5 1
6 2
7 1

样例输出2

2

样例解释

  • 投入 20 20 20单位资源,恰好可将所有区域开垦耗时均缩短为 k = 2 k = 2 k=2天;受限于 k k k,剩余的 10 10 10单位资源无法使耗时进一步缩短

子任务

  • 70 % 70\% 70%的测试数据满足: 0 < n 0 < n 0<n t i t_{i} ti c i ≤ 100 c_{i} \leq 100 ci100 0 < m ≤ 1 0 6 0 < m \leq 10^{6} 0<m106
  • 全部的测试数据满足: 0 < n 0 < n 0<n t i t_{i} ti c i ≤ 1 0 5 c_{i} \leq 10^{5} ci105 0 < m ≤ 1 0 9 0 < m \leq 10^{9} 0<m109

Python实现

n, m, k = map(int, input().split())days = []
for _ in range(n):days.append(list(map(int, input().split())))def judge(x):sum = 0for i in range(n):if days[i][0] < x:continuesum += (days[i][0] - x) * days[i][1]if sum <= m:return Trueelse:return Falsel, r = k, max(days, key=lambda x: x[0])[0]while l <= r:mid = (l + r) // 2if judge(mid):r = mid - 1else:l = mid + 1print(l)

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

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

相关文章

基于STM32 + DMA介绍,应用和步骤详解(ADC多通道)

前言 本篇博客主要学习了解DMA的工作原理和部分寄存器解析&#xff0c;针对ADC多通道来对代码部分&#xff0c;应用部分作详细讲解&#xff0c;掌握代码编程原理。本篇博客大部分是自己收集和整理&#xff0c;如有侵权请联系我删除。 本次博客开发板使用的是正点原子精英版&am…

23种策略模式之策略模式

文章目录 前言优缺点使用场景角色定义UML模拟示例小结 前言 在软件开发中&#xff0c;设计模式是为了解决常见问题而提供的一套可重用的解决方案。策略模式&#xff08;Strategy Pattern&#xff09;是其中一种常见的设计模式&#xff0c;它属于行为型模式。该模式的核心思想是…

Java程序设计实验6 | 集合类

*本文是博主对Java各种实验的再整理与详解&#xff0c;除了代码部分和解析部分&#xff0c;一些题目还增加了拓展部分&#xff08;⭐&#xff09;。拓展部分不是实验报告中原有的内容&#xff0c;而是博主本人自己的补充&#xff0c;以方便大家额外学习、参考。 &#xff08;解…

基于ssm的大型商场会员管理系统论文

摘 要 进入信息时代以来&#xff0c;很多数据都需要配套软件协助处理&#xff0c;这样可以解决传统方式带来的管理困扰。比如耗时长&#xff0c;成本高&#xff0c;维护数据困难&#xff0c;数据易丢失等缺点。本次使用数据库工具MySQL和编程框架SSM开发的大型商场会员管理系统…

【漏洞复现】FLIR AX8红外线热成像仪命令执行漏洞

漏洞描述 eledyne FLIR 设计、开发、制造以及强大的传感和意识技术。自透射热图像、可见光图像、可见频率分析、来自测量和诊断的先进威胁测量系统以及日常生活的创新解决方案。 Teledyne FLIR 提供多种产品用于政府、国防、工业和商业市场。我们的产品,紧急救援人员,军事人…

插入排序与希尔排序(C语言实现)

1.插入排序 由上面的动图可以知道插入排序的逻辑就是从第一个元素开始往后遍历&#xff0c;如果找到比前一个元素小的&#xff08;或者大的&#xff09;就往前排&#xff0c;所以插入排序的每一次遍历都会保证前面的数据是有序的&#xff0c;接下类用代码进行讲解。 我们这里传…

bash中通过变量中的内容获取对应的关联数组

bash中通过变量中的内容获取对应的关联数组 Bash declare 手册&#xff1a; https://phoenixnap.com/kb/bash-declare 实际问题&#xff1a; 在 bash 中创建了多个关联数组&#xff0c;需要根据输入的值&#xff0c;获取不同的关联数组。 可以使用 if 进行多次判断&#xff…

智能优化算法应用:基于浣熊算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于浣熊算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于浣熊算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.浣熊算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

解决HTTP错误500.19 - internal server error -内部服务器错误的终极指南

在开发和维护网络应用程序时&#xff0c;难免会遇到各种HTTP错误代码。其中&#xff0c;HTTP错误500.19 - 内部服务器错误可谓是最令人头痛的问题之一。当你的应用程序遇到这个错误时&#xff0c;它似乎就像一道墙壁&#xff0c;挡住了你前进的道路。但别担心&#xff0c;本篇技…

Git全局设置命令---设置提交人姓名

介绍 使用git命令设置提交人姓名 命令 git config --global user.name "超音速"

react-photo-view 的介绍、安装、使用。

目录 基本介绍 安装 使用 基本介绍 react-photo-view 是一个基于 React 的图片查看器组件&#xff0c;用于在网页上展示和浏览图片。该组件提供了用户友好的界面和交互&#xff0c;可以轻松地在应用程序中集成并使用。 支持触摸手势&#xff0c;拖动/平移/物理效果滑动…

修改移远提供的GobiNet、quectel-CM源码,使其支持有方N720 4G模块

最近在研究imx6ull linux下4G模块驱动的移植&#xff0c;参考的移远ec20的移植方法&#xff0c;添加了GobiNet驱动&#xff0c;编译了quectel-CM工具&#xff0c;并且可以正常拨号&#xff0c;分配到ip&#xff0c;如下&#xff1a; ping外网也没有压力&#xff0c;如下…

软件工程 考试重点

结构化分析 考虑数据和处理的需求分析方法&#xff0c;称为结构分析方法&#xff08;SA&#xff09; 结构化分析基于 分解、抽象 的基本思想 分解&#xff1a;对于复杂的系统&#xff0c;为将复杂度降低到可以掌握的程度&#xff0c;可以把大问题分解为若干个小问题&#xf…

【go-zero】go-zero使用ent框架 如何使用源生sql完成查询

背景 本篇教程我们采用的是go-zero的快速脚手架工具 simple-admin 框架的开发 github地址:https://github.com/suyuan32/simple-admin-core 因为框架推荐使用Ent 这篇教程我们则对Ent的基本使用的几种形式进行一个总结 一、开启ent的源生sql 1、simple-admin生成rpc 【go-…

QT 中 线程池 (备查)

QRunnable类 API 1&#xff09;在Qt中使用线程池需要先创建任务&#xff0c;添加到线程池中的每一个任务都需要是一个 QRunnable 类型&#xff0c;因此在程序中需要创建子类继承 QRunnable 这个类。 2&#xff09;然后重写 run() 方法&#xff0c;在这个函数中编写要在线程池中…

RabbitMQ使用指南

介绍主要特点常用插件使用RabbitMQ的插件常用插件列表 应用场景Kafka与RabbitMq的区别主要优缺点安装步骤插件安装步骤 使用RabbitMqJava代码示例拓展 介绍 RabbitMQ是由Erlang语言开发的&#xff0c;基于AMQP&#xff08;高级消息队列协议&#xff09;协议实现的开源消息代理…

元宇宙红色展厅VR虚拟展馆提高受训者的参与感

生活在和平年代的新一代青少年&#xff0c;可能对革命先烈英勇事迹难以有很深的体会&#xff0c;无法切实感受到中国共产党无畏牺牲、誓死保家卫国的红色精神&#xff0c;因此借助VR虚拟现实制作技术&#xff0c;让参观者们走近革命先烈中&#xff0c;感受老一辈无产阶级革命家…

搜索引擎和网络浏览器之间的区别

术语“搜索引擎”和“网络浏览器”与互联网有关。搜索引擎基本上是用于通过 Internet 搜索信息的工具&#xff0c;而 Web 浏览器是用于加载网页等 HTML 文件的应用软件。 阅读本文以了解有关搜索引擎和网络浏览器以及它们之间的区别的更多信息。 什么是搜索引擎&#xff1f; …

TrustZone之SMC异常

作为支持两个安全状态的一部分&#xff0c;该架构包括了Secure Monitor Call&#xff08;SMC&#xff09;指令。执行SMC会引发Secure Monitor Call异常&#xff0c;该异常目标是EL3。 通常&#xff0c;SMC用于请求服务&#xff0c;可以是来自驻留在EL3中的固件&#xff0c;也可…

微信小程序适配方案:rpx(responsive pixel响应式像素单位)

小程序适配单位&#xff1a;rpx 规定任何屏幕下宽度为750rpx 小程序会根据屏幕的宽度自动计算rpx值的大小 Iphone6下&#xff1a;1rpx 1物理像素 0.5css 小程序编译后&#xff0c;rpx会做一次px换算&#xff0c;换算是以375个物理像素为基准&#xff0c;也就是在一个宽度…