C++知识点总结(22):模拟算法真题 ★★★★☆《越野比赛》

二、越野比赛

1. 审题

题目描述

最近赛车手 K a l n Kaln Kaln 加入了心心念念的 F a r Far Far 车队,马上就迎来了自己的首秀,参加一场直线加速赛:已知 F a r Far Far 车队会提供 n n n 种类型的赛车, K a l n Kaln Kaln 只能选择其中一辆完成比赛,不能中途换车,第 i i i 辆车踩一次油门所产生的油耗为 a i a_i ai,能够行驶的距离为 b i b_i bi。现给出车队现在拥有的总油量 p p p,以及车队提供的车的种数 n n n,和赛道总距离 m m m,请你设计一个小程序,帮助 K a l n Kaln Kaln 选择合适的赛车,如果有多辆,按输入顺序输出,若没有合适的车,输出 − 1 -1 1
注意: K a l n Kaln Kaln 可以在剩余油量足够的情况下,无限次踩油门。

输入格式

第一行有三个整数,分别表示 p , n , m p,n,m p,n,m
后面 n n n 行,每行两个整数,第 ( i + 1 ) (i+1) (i+1) 行的整数表示第i辆车踩一次油门所产生的油耗为 a i a_i ai,能够行驶的距离为 b i b_i bi

输出格式

输出仅一行,即可以完成比赛的车辆序号,车辆序号即为输入的第几辆车,如果有多个,按输入顺序输出,每两个序号之间使用空格隔开,若没有合适的车,输出 − 1 -1 1

输入样例1

100 3 5000
90 0
20 1000
110 10000

输出样例 1

2

输入样例 2

10 3 5000
20 1000
90 0
110 10000

输出样例 2

-1

提示

对于全部的测试点 1 ≤ p , n , m ≤ 30000 1 \le p,n,m \le 30000 1p,n,m30000 0 ≤ a i , b i ≤ 1 × 1 0 5 0 \le ai,bi \le 1 \times 10^5 0ai,bi1×105

2. 思路

为了更加直观,我们可以这么命名变量:

int oil; // 总油量
int kind; // 提供车的种类
int S; // 赛道总距离int ri; // 耗油量
int si; // 能够行驶的距离bool flag = true; // 用于标记是否有合适的车辆

接着我们可以找到几个特殊的例子,比如:

  • 油耗为 0 0 0 且能行驶的距离不为 0 0 0
  • 能行驶的距离为 0 0 0
  • 油耗超过总油量

否则,我们才会进行模拟。

		int nowS = 0;int nowOil = oil;while (nowOil >= ri){nowS += si;nowOil -= ri;}if (nowS >= S){cout << i << " ";flag = false;continue;}

3. 参考答案

#include <iostream>
using namespace std;int oil; // 总油量
int kind; // 提供车的种类
int S; // 赛道总距离int ri; // 耗油量
int si; // 能够行驶的距离bool flag = true; // 用于标记是否有合适的车辆int main()
{// 输入数据cin >> oil >> kind >> S;for (int i = 1; i <= kind; i++){cin >> ri >> si;// 特殊情况if (ri == 0 && si != 0) // 油耗为0且能行驶的距离不为0{cout << i << " ";flag = false;continue;}if (si == 0) // 能行驶的距离为0{continue;}if (ri > oil) // 油耗超过总油量{continue;}// 模拟int nowS = 0;int nowOil = oil;while (nowOil >= ri){nowS += si;nowOil -= ri;}if (nowS >= S){cout << i << " ";flag = false;continue;}}// 如果没有合适的车辆if (flag){cout << -1;}return 0;
}

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

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

相关文章

【数据结构】队列OJ题《用队列实现栈》(题库+解析+代码)

1.前言 通过前面队列的实现和详解大家对队列应该有一定熟悉了&#xff0c;现在上强度开始做题吧 队列详解&#xff1a;http://t.csdnimg.cn/dvTsW 2.OJ题目训练225. 用队列实现栈 题目分析 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0…

git 设置代理 取消代理

设置代理 git config --global http.proxy 127.0.0.1:7890 git config --global https.proxy 127.0.0.1:7890注意&#xff1a;加上 --global 是对 git 设置全局代理&#xff0c;不加 --global 对指定仓库目录设置代理&#xff0c;局部代理 查看已修改 git 配置信息 git conf…

【GPU驱动开发】- AST简介

前言 不必害怕未知&#xff0c;无需恐惧犯错&#xff0c;做一个Creator&#xff01; AST&#xff0c;抽象语法树&#xff0c;是一种包含丰富语义信息的格式&#xff0c;其中包括类型、表达式树和符号等。 TranslationUnitDecl&#xff1a;该类表示一个输入源文件 ASTContext&…

Qt注册类对象单例与单类型区别

1.实现类型SingletonTypeExample #ifndef SINGLETONTYPEEXAMPLE_H #define SINGLETONTYPEEXAMPLE_H#include <QObject>class SingletonTypeExample : public QObject {Q_OBJECT public://只能显示构造类对象explicit SingletonTypeExample(QObject *parent nullptr);//…

【学习笔记】深度学习实战 | LeNet

简要声明 学习相关网址 [双语字幕]吴恩达深度学习deeplearning.aiPapers With CodeDatasets 深度学习网络基于PyTorch学习架构&#xff0c;代码测试可跑。本学习笔记单纯是为了能对学到的内容有更深入的理解&#xff0c;如果有错误的地方&#xff0c;恳请包容和指正。 参考文献…

KubeEdge 边缘计算

文章目录 1.KubeEdge2.KubeEdge 特点3.KubeEdge 组成4.KubeEdge 架构 KubeEdge # KubeEdgehttps://iothub.org.cn/docs/kubeedge/ https://iothub.org.cn/docs/kubeedge/kubeedge-summary/1.KubeEdge KubeEdge 是一个开源的系统&#xff0c;可将本机容器化应用编排和管理扩展…

蓝牙耳机和笔记本电脑配对连接上了,播放设备里没有显示蓝牙耳机这个设备,选不了输出设备

环境&#xff1a; WIN10 杂牌蓝牙耳机6s 问题描述&#xff1a; 蓝牙耳机和笔记本电脑配对连接上了&#xff0c;播放设备里没有显示蓝牙耳机这个设备&#xff0c;选不了输出设备 解决方案&#xff1a; 1.打开设备和打印机&#xff0c;找到这个设备 2.选中这个设备&#…

Linux下gcc编译常用命令详解

在Linux环境下&#xff0c;使用gcc编译器进行源代码的编译是程序员日常工作的一部分。本篇将介绍一些常用的gcc编译命令&#xff0c;帮助开发者更好地理解和使用这些命令。 1. 基本编译命令 gcc工作流程&#xff1a; 编译单个源文件 gcc source.c -o output这个命令将sour…

20240229笔记

浏览器预加载器 手动&#xff1a;prefetch preload <link rel"prefetch" href"next.html"> <link rel"preload" as"style" href"styles.css"> <link rel"preload" as"javascript" hr…

调试工具vue,react,redux

React Developer Tools Redux DevTools Vue devtools 使用浏览器官方组件扩展搜索安装

C语言练习:(力扣645)错误的集合

题目链接&#xff1a;645. 错误的集合 - 力扣&#xff08;LeetCode&#xff09; 集合 s 包含从 1 到 n 的整数。不幸的是&#xff0c;因为数据错误&#xff0c;导致集合里面某一个数字复制了成了集合里面的另外一个数字的值&#xff0c;导致集合 丢失了一个数字 并且 有一个数字…

枚举和联合(共用体)

目录 枚举枚举类型的定义枚举的优点 联合&#xff08;共用体&#xff09;联合类型的定义联合的特点联合大小的计算 枚举 枚举顾名思义就是一一列举&#xff0c;把可能的取值一一列举 枚举类型的定义 enum Day &#xff0c; enum Sex &#xff0c;enum Color 都是枚举类型{}中…

springboot生成图片验证码(借鉴并分析)

目录 一、CaptchaUtil代码展示二、CaptchaController 代码展示 一、CaptchaUtil代码展示 package com.minster.yanapi.utils;import com.google.code.kaptcha.impl.DefaultKaptcha;import com.google.code.kaptcha.util.Config; import org.springframework.context.annotatio…

MMDetection3D v1.3.0安装教程

MMDetection3D v1.3.0安装教程 1. 系统环境2. 安装2.1 基本环境安装2.2 调整具体版本2.3 验证2.4 安装MinkowskiEngine和TorchSparse 3. 最终环境配置 根据 v1.3.0版本官方手册测试后的安装配置&#xff0c;亲测可行。 1. 系统环境 项目版本日期Ubuntu18.04.06 LTS-显卡RTX 2…

曾桂华:车载座舱音频体验探究与思考| 演讲嘉宾公布

智能车载音频 I 分论坛将于3月27日同期举办&#xff01; 我们正站在一个前所未有的科技革新的交汇点上&#xff0c;重塑我们出行体验的变革正在悄然发生。当人工智能的磅礴力量与车载音频相交融&#xff0c;智慧、便捷与未来的探索之旅正式扬帆起航。 在驾驶的旅途中&#xff0…

安装 Distribution Registry

Distribution Registry是由容器部署&#xff0c;所有前提是需要安装docker 参考文档&#xff1a;https://docs.docker.com/engine/install/centos/ Registry 官网文档 https://distribution.github.io/distribution/ 安装Registry仓库 docker run -d -p 5000:5000 --restartalw…

通过css修改video标签的原生样式

通过css修改video标签的原生样式 描述实现结果 描述 修改video标签的原生样式 实现 在控制台中打开设置&#xff0c;勾选显示用户代理 shadow DOM&#xff0c;就可以审查video标签的内部样式了 箭头处标出来的就是shodow DOM的内容&#xff0c;这些内容正常不可见的&#x…

MySQL 用了哪种默认隔离级别,实现原理是什么?

MySQL 的默认隔离级别是 RR - 可重复读&#xff0c;可以通过命令来查看 MySQL 中的默认隔离级别。 RR - 可重复读是基于多版本并发控制&#xff08;Multi-Version Concurrency Control&#xff0c;MVCC &#xff09;实现的。MVCC&#xff0c;在读取数据时通过一种类似快照的方…

视觉三维重建colmap框架的现状与未来

注&#xff1a;该文章首发3D视觉工坊&#xff0c;链接如下3D视觉工坊 前言 众所周知&#xff0c;三维重建的发展已经进入了稳定期&#xff0c;尤其是离线方案的发展几乎处于停滞期&#xff0c;在各大论刊上也很少见到传统sfmmvs亮眼的文章。这也不难理解&#xff0c;传统的多视…

MYSQL 解释器小记

解释器的结果通常通过上述表格展示&#xff1a; 1. select_type 表示查询的类型 simple: 表示简单的选择查询&#xff0c;没有子查询或连接操作 primary:表示主查询&#xff0c;通常是最外层的查询 subquery :表示子查询&#xff0c;在主查询中嵌套的查询 derived: 表示派…