【C++ 真题】P2920 [USACO08NOV] Time Management S
P2920 [USACO08NOV] Time Management S
题目描述
Ever the maturing businessman, Farmer John realizes that he must manage his time effectively. He has N jobs conveniently numbered 1…N (1 <= N <= 1,000) to accomplish (like milking the cows, cleaning the barn, mending the fences, and so on).
To manage his time effectively, he has created a list of the jobs that must be finished. Job i requires a certain amount of time T_i (1 <= T_i <= 1,000) to complete and furthermore must be finished by time S_i (1 <= S_i <= 1,000,000). Farmer John starts his day at time t=0 and can only work on one job at a time until it is finished.
Even a maturing businessman likes to sleep late; help Farmer John determine the latest he can start working and still finish all the jobs on time.
作为一名忙碌的商人,约翰知道必须高效地安排他的时间。他有 N ( 1 ≤ N ≤ 1000 ) N(1\le N\le 1000) N(1≤N≤1000) 个工作要做,比如给奶牛挤奶,清洗牛棚,修理栅栏之类的。
为了高效,约翰列出了所有工作的清单。第 i ( 1 ≤ i ≤ N ) i(1\le i\le N) i(1≤i≤N) 个工作需要 T i ( 1 ≤ T i ≤ 1000 ) T_i(1\le T_i\le 1000) Ti(1≤Ti≤1000) 单位的时间来完成,而且必须在 1 ≤ S i ≤ 1 0 6 1\le S_i\le 10^6 1≤Si≤106 或之前完成。现在是 0 0 0 时刻。约翰做一份工作必须直到做完才能停止。
所有的商人都喜欢睡懒觉。请帮约翰计算他最迟什么时候开始工作,可以让所有工作按时完成。(如果始终无法完成全部任务,输出 − 1 -1 −1)
输入格式
* Line 1: A single integer: N
* Lines 2…N+1: Line i+1 contains two space-separated integers: T_i and S_i
输出格式
* Line 1: The latest time Farmer John can start working or -1 if Farmer John cannot finish all the jobs on time.
输入输出样例 #1
输入 #1
4
3 5
8 14
5 20
1 16
输出 #1
2
说明/提示
Farmer John has 4 jobs to do, which take 3, 8, 5, and 1 units of time, respectively, and must be completed by time 5, 14, 20, and 16, respectively.
Farmer John must start the first job at time 2. Then he can do the second, fourth, and third jobs in that order to finish on time.
题解
#include "bits/stdc++.h"
using namespace std;
const int N = 1e6+7;
int n, a, b;
int g[N], sum = 1, ans, mid;
struct work{int t, T;
};
work que[N];
bool cmp(work a, work b){return a.T > b.T;
}
int main() {cin>>n;for(int i=1;i<=n;++i){cin>>que[i].t>>que[i].T;}sort(que+1, que+n+1, cmp);int less = que[1].T - que[1].t;for(int i=2;i<=n;++i){if(que[i].T <= less){less = que[i].T - que[i].t;}else if(que[i].T > less){less = less - que[i].t;}}if(less<0){cout<<"-1"<<endl;}else{cout<<less<<endl;}return 0;
}相关文章:
【C++ 真题】P2920 [USACO08NOV] Time Management S
P2920 [USACO08NOV] Time Management S 题目描述 Ever the maturing businessman, Farmer John realizes that he must manage his time effectively. He has N jobs conveniently numbered 1…N (1 < N < 1,000) to accomplish (like milking the cows, cleaning the …...
pip安装指定版本的包
个人博客地址:pip安装指定版本的包 | 一张假钞的真实世界 使用以下命令安装指定版本的包: # pip install pyspark2.3.3...
【pytest】获取所有用例名称并存于数据库
数据库操作包,引用前面创建的py文件,【sqlite】python操作sqlite3(含测试) #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2025-02-11 8:45 # Author : duxiaowei # File : get_filename.py # Software: 这个文…...
Java中原子操作的实现原理
目录 一、处理器如何实现原子操作? 1.使用总线锁保证原子性 1.使用缓存锁保证原子性 二、Java如何实现原子操作? 1)使用循环CAS实现原子操作 2)CAS实现原子操作的三大问题 3)使用锁机制实现原子操作 前言 原子&…...
25农村发展研究生复试面试问题汇总 农村发展专业知识问题很全! 农村发展复试全流程攻略 农村发展考研复试真题汇总
农村发展复试当然有好的建议!前提是复试重点面试题背好! 你是不是也在为农村发展考研复试发愁?担心自己准备不充分、表现不好?别急!今天,学姐——复试面试拿下90分成功上岸的学姐,来给大家分享…...
一维前缀和与二维前缀和
前缀和(Prefix Sum)是一种用于高效计算数组区间和的预处理技术,尤其适用于需要频繁查询子数组或子矩阵和的场景。下面详细讲解一维前缀和与二维前缀和的原理、构建方法及应用。 一、一维前缀和 1. 定义 前缀和数组 prefix 的每个元素 prefi…...
3×2 MIMO系统和2×2 MIMO系统对比
从 SVD(奇异值分解)预编码 的角度分析,32 MIMO 系统相比 22 MIMO 系统在容量、功率分配灵活性和抗干扰能力方面具有潜在优势。以下是具体分析: 1. SVD预编码的基本原理 SVD 预编码是一种基于信道状态信息(CSI…...
【MySQL — 数据库基础】深入解析 MySQL 的联合查询
1. 插入查询结果 语法 insert into table_name1 select* from table_name2 where restrictions ;注意:查询的结果集合,列数 / 类型 / 顺序 要和 insert into 后面的表相匹配;列的名字不要求相同; create table student1(id int , …...
【医院运营统计专题】3.解码医院运营统计:目标、原则与未来蓝图
医院成本核算、绩效管理、运营统计、内部控制、管理会计专题索引 一、医院运营统计的关键意义 在医疗行业持续发展与变革的大背景下,医院运营统计作为医院管理的关键组成部分,其重要性愈发凸显。从国内医院的普遍现状来看,运营统计已深度融入日常管理,为医院的有序运转提…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_atomic_cmp_set 函数
目录 修正 执行 ./configure 命令时,输出: checking for OS Linux 6.8.0-52-generic x86_64 checking for C compiler ... found using GNU C compiler gcc version: 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 所以当前环境是 x86_64 于是在 src…...
CNN-BiLSTM卷积神经网络双向长短期记忆神经网络多变量多步预测,光伏功率预测
代码地址:CNN-BiLSTM卷积神经网络双向长短期记忆神经网络多变量多步预测,光伏功率预测 CNN-BiLSTM卷积神经网络双向长短期记忆神经网络多变量多步预测 一、引言 1.1、研究背景和意义 光伏功率预测在现代电力系统中占有至关重要的地位。随着可再生能源…...
【YOLO系列】YOLOv5 NMS源码理解、更换为DIoU-NMS
代码来源:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite 使用的代码是YOLOv5 6.1版本 参考笔记:YOLOv5改进系列(八) 更换NMS非极大抑制DIoU-NMS、CIoU-NMS、EIoU-NMS、GIoU-NMS 、SIoU-NMS、Soft-…...
Android RenderEffect对Bitmap高斯模糊(毛玻璃),Kotlin(1)
Android RenderEffect对Bitmap高斯模糊(毛玻璃),Kotlin(1) import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.HardwareRenderer import android.graphics.PixelFormat import android.graphic…...
【linux学习指南】线程同步与互斥
文章目录 📝线程互斥🌠 库函数strncpy🌉进程线程间的互斥相关背景概念🌉互斥量mutex 🌠线程同步🌉条件变量🌉同步概念与竞态条件🌉 条件变量函数 🚩总结 📝线…...
JavaScript函数与方法详解
目录 一、函数的定义 1. 函数声明 2. 函数表达式 3. 箭头函数 二、函数的调用 1. 调用方式 2. 参数数量的灵活性 三、arguments 对象 1. 基本概念 2. 属性 3. 应用场景 4. 转换为真数组 5. 总结 四、Rest参数 1. 基本概念 2. 特点 3. 应用场景 4. 总结 五、变…...
【论文笔记】ZeroGS:扩展Spann3R+GS+pose估计
spann3r是利用dust3r做了增量式的点云重建,这里zeroGS在前者的基础上,进行了增量式的GS重建以及进行了pose的联合优化,这是一篇dust3r与GS结合的具有启发意义的工作。 abstract NeRF和3DGS是重建和渲染逼真图像的流行技术。然而,…...
AtCoder - arc058_d Iroha Loves Strings解答与注意事项
链接:Iroha Loves Strings - AtCoder arc058_d - Virtual Judge 利用bitset这一数据结构,定义bitset类型的变量dp[i]表示第i到n个字符串能拼成的字符串长度都有哪些,比如00100101,表示能拼成的长度有0,2,5,࿰…...
企业使用统一终端管理(UEM)工具提高端点安全性
什么是统一终端管理(UEM) 统一终端管理(UEM)是一种从单个控制台管理和保护企业中所有端点的方法,包括智能手机、平板电脑、笔记本电脑、台式机和 IoT设备。UEM 解决方案为 IT 管理员提供了一个集中式平台,用于跨所有作系统和设备类型部署、配置、管理和…...
Leetcode 算法题 9 回文数
起因, 目的: 数学法。 % 求余数, 拆开组合,组合拆开。 这个题,翻来覆去,拆开组合, 组合拆开。构建的过程。 题目来源,9 回文数: https://leetcode.cn/problems/palindrome-number…...
设计模式Python版 命令模式(上)
文章目录 前言一、命令模式二、命令模式示例 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式:关注类和对象之间的组合&…...
为Dify扩展AI图表与文档生成能力:微服务架构实战指南
1. 项目概述:为Dify打造专属的AI图表与文档生成工具箱如果你正在使用Dify构建自己的AI应用,并且希望让AI不仅能生成文字,还能直接输出流程图、思维导图、PPT甚至试卷,那么这个项目就是为你准备的。brightwang/dify-tool-service是…...
碧蓝航线Perseus补丁:零偏移设计实现全皮肤解锁的终极指南
碧蓝航线Perseus补丁:零偏移设计实现全皮肤解锁的终极指南 【免费下载链接】Perseus Azur Lane scripts patcher. 项目地址: https://gitcode.com/gh_mirrors/pers/Perseus 在碧蓝航线这款广受欢迎的海战游戏中,玩家们常常为那些精美的限定皮肤只…...
联想刃7000k BIOS解锁终极指南:安全释放隐藏性能的3种方法
联想刃7000k BIOS解锁终极指南:安全释放隐藏性能的3种方法 【免费下载链接】Lenovo-7000k-Unlock-BIOS Lenovo联想刃7000k2021-3060版解锁BIOS隐藏选项并提升为Admin权限 项目地址: https://gitcode.com/gh_mirrors/le/Lenovo-7000k-Unlock-BIOS 对于联想刃7…...
可穿戴ESD监测:从被动防护到主动感知的静电管理革命
1. 项目概述:当静电成为“幽灵”,可穿戴监测如何为航空航天制造“显形” 在航空航天和高可靠性电子制造领域,我们常常与一个看不见的“幽灵”作斗争——静电放电。这个“幽灵”无声无息,却能轻易摧毁价值数十万甚至数百万美元的精…...
告别手动打断点:用GDB脚本自动化调试除零错误(附完整.gdb文件)
告别手动打断点:用GDB脚本自动化捕获除零错误实战指南 调试C/C程序时,最令人头疼的莫过于那些偶发的运行时错误。特别是当程序在压力测试或特定输入下突然崩溃,而开发者却无法稳定复现问题时,传统的调试方式往往显得力不从心。本…...
PyTorch数据集加载进阶:除了CIFAR10,你的自定义数据该怎么准备?
PyTorch数据集加载进阶:从CIFAR10到自定义数据的深度实践 在深度学习项目中,数据准备往往比模型构建更耗时。许多开发者能熟练使用torchvision.datasets加载标准数据集,却对自定义数据束手无策。本文将带你深入PyTorch数据加载机制ÿ…...
【技术解析】方差分析:从统计表解读到业务决策的实战指南
1. 方差分析:从统计表到业务决策的实战指南 第一次接触方差分析时,我也被那些统计术语和公式搞得晕头转向。直到有一次,产品经理拿着A/B测试数据问我:"新版页面真的比旧版好吗?好多少?"我才意识到…...
从源码细节看muduo为何比libevent2快70%:一次4096字节读取限制引发的性能思考
从缓冲区设计揭秘高性能网络库的优化哲学 在构建高并发服务器时,网络库的性能差异往往源于看似微小的设计决策。当两个知名网络库在相同硬件条件下出现70%的吞吐量差距时,这个数字背后隐藏的是对系统调用、内存管理和数据流控制的深刻理解差异。本文将从…...
Kotlin ViewModel
Kotlin ViewModel 全流程指南 ViewModel 的核心作用是以注重生命周期的方式存储和管理界面相关的数据。它最伟大的地方在于:当手机屏幕旋转(配置更改)导致 Activity 重建时,ViewModel 中的数据不会丢失。 大纲 添加依赖创建 View…...
ExDark低光照图像数据集技术架构:构建真实世界低光照计算机视觉解决方案
ExDark低光照图像数据集技术架构:构建真实世界低光照计算机视觉解决方案 【免费下载链接】Exclusively-Dark-Image-Dataset Exclusively Dark (ExDARK) dataset which to the best of our knowledge, is the largest collection of low-light images taken in very …...
