题解:T480718 eating

eating

题目背景

从前有个荣光的王国,小 A 是里面的国王,今天他要赐予他的子民以仓廪。

题目描述

在一条街上有 n n n 个饭店。小 A 站在这条街的最左端。

i i i 个饭店离这条街最左端的距离是 a i a_i ai,它所售卖的菜品的美味值是 b i b_i bi

小 A 不想走太多路,但是又想吃到好吃的东西。因此他定义一个饭店的吸引力是 w i = b i a i w_i = \frac{b_i}{a_i} wi=aibi

小 A 想知道吸引力最大的饭店的编号是多少。如果有多个吸引力最大的饭店,你要告诉他距离街道左端距离最近的那个饭店的编号。

输入格式

第一行是一个整数 n n n,表示商店的个数。
接下来 n n n 行,每行两个整数,表示一个商店离街道左端的距离 a i a_i ai 个菜品美味值 b i b_i bi

输出格式

输出一行一个整数,表示答案。

样例 #1

样例输入 #1

3
1 2
2 4
3 9

样例输出 #1

3

样例 #2

样例输入 #2

3
1 2
2 3
3 4

样例输出 #2

1

样例 #3

样例输入 #3

3
1 1
2 3
4 6

样例输出 #3

2

提示

数据规模与约定

  • 20 % 20\% 20% 的数据, n = 2 n = 2 n=2
  • 40 % 40\% 40% 的数据,保证 b i b_i bi a i a_i ai 的倍数。
  • 60 % 60\% 60% 的数据,保证给出的 a i a_i ai 单调递增。
  • 80 % 80\% 80% 的数据,保证 n ≤ 1000 n \leq 1000 n1000
  • 100 % 100\% 100% 的数据,保证 2 ≤ n ≤ 1 0 5 2 \leq n \leq 10^5 2n105 1 ≤ a i , b i ≤ 1 0 9 1 \leq a_i, b_i \leq 10^9 1ai,bi109 a i a_i ai 互不相同。

为了解决这个问题,我们可以遍历所有的饭店,计算每个饭店的吸引力 w i = b i a i w_i = \frac{b_i}{a_i} wi=aibi,并记录当前最大的吸引力和对应的饭店编号。如果有多个饭店的吸引力相同且都是最大的,我们还需要记录这些饭店中距离街道左端最近的饭店编号。

以下是具体的Python代码实现:

n = int(input().strip())  # 读取饭店数量
max_attraction = float('-inf')  # 初始化最大吸引力为负无穷
closest_restaurant = 0  # 初始化距离街道左端最近的饭店编号为0(实际上这个初始值不会被使用)
answer = 0  # 初始化答案为0(实际答案会在这个基础上更新)for i in range(n):a_i, b_i = map(int, input().strip().split())  # 读取每个饭店的距离和美味值w_i = b_i / a_i  # 计算吸引力# 如果当前饭店的吸引力大于已知的最大吸引力if w_i > max_attraction:max_attraction = w_i  # 更新最大吸引力answer = i + 1  # 更新答案为当前饭店的编号# 如果当前饭店的吸引力等于已知的最大吸引力,但距离更近elif w_i == max_attraction and a_i < min(a_i for _, a_i in enumerate(range(answer-1, -1, -1))):# 注意这里我们假设answer-1之前的饭店的a_i都已经被读取过了,但实际上我们需要一个额外的数据结构来存储这些值# 但由于题目保证a_i互不相同,我们可以直接更新answer,因为更近的饭店一定在更前面被读取answer = i + 1  # 更新答案为当前饭店的编号print(answer)  # 输出答案

然而,上面的代码在处理距离更近的饭店时存在逻辑上的不严谨,因为我们在遍历过程中并没有存储之前所有饭店的距离。但由于题目保证 a i a_i ai 互不相同,我们可以简化处理:当遇到吸引力相同的饭店时,我们直接更新答案,因为后读取的饭店(即距离更近的)会覆盖之前的答案。

下面是简化后的代码:

n = int(input().strip())
max_attraction = float('-inf')
answer = 0for i in range(n):a_i, b_i = map(int, input().strip().split())w_i = b_i / a_iif w_i > max_attraction or (w_i == max_attraction and i + 1 < answer):max_attraction = w_ianswer = i + 1print(answer)

这样,我们就可以正确地找到吸引力最大且距离街道左端最近的饭店编号了。

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

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

相关文章

【C++】C++类和对象详解(上)

目录 思维导图大纲&#xff1a; 思维方面&#xff1a; 1. 类的定义&#xff1a; 2. 类的特点&#xff1a; 3. this指针&#xff1a; 4. 类的默认成员函数 默认构造函数 1.构造函数 2.析构函数 3.拷贝构造函数 4. 赋值运算符重载 1. 运算符重载 5. 日期类实现&#…

【CPP】CPP的内存管理

目录 10 C/C内存管理10.1 内存分布10.2 C的动态内存管理10.3 C的内存管理10.4 new失败的检测10.5 operator new与operator delete函数10.5 new与malloc()的区别,delete与free()的区别10.6 定位new表达式 这里是oldking呐呐,感谢阅读口牙!先赞后看,养成习惯! 个人主页:oldking呐…

编程中的智慧四:设计模式总览

前面三篇我们通过从一些零散的例子&#xff0c;和简单应用来模糊的感受了下设计模式在编程中的智慧&#xff0c;从现在开始正式进入设计模式介绍&#xff0c;本篇将从设计模式的7大原则、设计模式的三大类型、与23种设计模式的进行总结&#xff0c;和描述具体意义。 设计模式体…

怎样在 Nginx 中配置防盗链?

文章目录 怎样在 Nginx 中配置防盗链&#xff1f;一、什么是盗链&#xff1f;二、Nginx 防盗链的原理三、Nginx 防盗链的配置步骤四、防盗链配置的实际应用示例五、常见问题及解决方法六、总结 怎样在 Nginx 中配置防盗链&#xff1f; 在当今数字化的时代&#xff0c;网站内容…

使用Diffusion Models进行街景视频生成

Diffusion Models专栏文章汇总&#xff1a;入门与实战 前言&#xff1a;街景图生成相当有挑战性&#xff0c;目前的文本到视频的方法仅限于生成有限范围的场景的短视频&#xff0c;文本到3D的方法可以生成单独的对象但不是整个城市。除此之外街景图对一致性的要求相当高&#x…

AOP面向切面编程的代码实现

目录 一.AOP简介&#xff1a; 二.AOP实现步骤&#xff1a; 1.在pom.xml中导入配置&#xff1a; 2.自定义注解 3.自定义切面类 4.在方法上加入自定义注解&#xff0c;来使用AOP 5.在启动类上加入EnableTransactionManagement注解 引言&#xff1a;本文快速带领读者了解AO…

webSocket模块组件

对应的头文件 #include <websocketpp/config/asio_no_tls.hpp> #include <websocketpp/server.hpp> #include <nlohmann/json.hpp> #include <boost/asio.hpp> #include <queue> #include <functional> #include <memory> #include…

数据库基础与安装MYSQL数据库

一、数据库管理系统DBMS 数据库技术是计算机科学的核心技术之一&#xff0c;具有完备的理论基础。使用数据库可以高效且条理分明地存储数据&#xff0c;使人们能够更加迅速、方便地管理数据 1.可以结构化存储大量的数据信息&#xff0c;方便用户进行有效的检索和访问 2.可以…

算法学习6——贪心算法

什么是贪心算法&#xff1f; 贪心算法是一种在每一步选择中都采取当前状态下最优或最有利的选择的算法。其核心思想是通过一系列局部最优选择来达到全局最优解。贪心算法广泛应用于各种优化问题&#xff0c;如最短路径、最小生成树、背包问题等。 贪心算法的特点 局部最优选…

目前航空航天设备怎么减重设计

目前航空航天设备怎么减重设计 1.使用轻质高强度材料1.1复合材料1.2金属基复合材料1.3陶瓷基复合材料1.4功能梯度材料和蜂窝材料 2.结构优化设计2.1拓扑优化2.2仿生学设计 3.部件和系统轻量化3.1机载娱乐系统3.2航空线缆3.3激光焊接技术 4.发动机和推进系统的优化4.1轻量化发动…

python爬虫Selenium模块及测试案例详解

什么是selenium&#xff1f; &#xff08;1&#xff09;Selenium是一个用于Web应用程序测试的工具。 &#xff08;2&#xff09;Selenium 测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。 &#xff08;3&#xff09;支持通过各种driver&#xff08;FirfoxDrive…

Codeforces 923 div3 A-G

A 题目分析: 记录隔得最远的两个B的距离 C代码&#xff1a; #include<iostream> using namespace std; int main(){int t;cin>>t;while(t--){int n;cin>>n;string s;cin>>s;int a0,b0,cnt0;//a:第一个B的下标 b:最后一个B的下标for(int i0;i<s.s…

python gradio 的输出展示组件

HTML&#xff1a;展示HTML内容&#xff0c;适用于富文本或网页布局。JSON&#xff1a;以JSON格式展示数据&#xff0c;便于查看结构化数据。KeyValues&#xff1a;以键值对形式展示数据。Label&#xff1a;展示文本标签&#xff0c;适用于简单的文本输出。Markdown&#xff1a;…

JavaScript之WebAPIs-BOM

目录 BOM操作浏览器一、Window对象1.1 BOM&#xff08;浏览器对象模型&#xff09;1.2 定时器-延时函数1.3 js执行机制1.4 location对象1.5 navigator对象1.6 history对象 二、本地存储三、补充数组中的map方法数组中的join方法数组中的forEach方法(重点)数组中的filter方法(重…

Linux——Centos系统安装(动图演示)

一、创建虚拟机并做相应配置 打开VMware Workstation&#xff0c;选择创建新的虚拟机&#xff1b; 1、选择自定义选项&#xff1a;点击下一步 2、选择虚拟机硬件兼容性&#xff1a;直接下一步就行了&#xff1b;点击下一步 3、安装客户机操作系统&#xff1a;这里我们选择稍后安…

C++对象模型之绕过private权限修饰符

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、C对象模型二、演示1.类层次2.内存排列 总结 前言 咱们都知道C语言在创建类的时候data member&#xff08;数据成员&#xff09;和fuchtion member&#xf…

C++文件操作-二进制文件-写文件

#include<iostream>//1、包含头文件 fstream #include<fstream> using namespace std;class Person { public:char m_Name[64];//姓名int m_Age;//年龄 };void test01() {//2、创建流对象ofstream ofs;//3、打开文件ofs.open("person.txt", ios::out | i…

Linux操作系统的有关常用的命令

1.linux系统的概述 1.1 什么是Linux系统? Linux&#xff0c;全称GNU/Linux&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦 兹&#xff08;Linus Benedict Torvalds&#xff09;于1991年10月5日首次发布&#xff0c;它主要受…

Mysql集合转多行

mysql 集合转多行 SELECT substring_index(substring_index(t1.group_ids, ,, n), ,, -1) AS group_id FROM (select 908,909 as group_ids ) t1, (SELECT rownum : rownum 1 AS n FROM ( SELECT rownum : 0 ) r, orders ) t2 WHERE n < ( LENGTH( t1.group_ids ) - LENGT…

【Linux】微基准测试

1、基准测试和微基准测试 1.1 定义 1)基准测试(Benchmark Testing): 基准测试是一种用于衡量计算机系统、软件应用或硬件组件性能的测试方法。它通过运行一系列标准化的任务场景来测量系统的性能表现,旨在帮助评估系统的各种指标,如响应时间、吞吐量、延迟、资源利用率…