题解:监控屏幕调整问题
问题描述
Reca 公司生产高端显示器,其中最受欢迎的型号是 AB999。屏幕尺寸为 $x \times y$ 的比例。由于某些生产特性,屏幕参数总是整数。最终,屏幕边长比例 $x:y$ 需要适应用户的需求。
为了满足用户需求,公司需要调整屏幕尺寸,使其满足以下条件:
- 屏幕能够完整容纳在用户给定的宽高限制 $a \times b$ 内;
- 调整后屏幕的宽高比必须等于 $x:y$;
- 调整后的屏幕尺寸尽可能接近用户提供的最大边界 $a \times b$。
如果无法满足以上条件,则输出 0 0。
输入格式
输入包含一行,四个整数 $a, b, x, y$,分别表示:
- 用户提供的屏幕宽高限制:$a$ 和 $b$;
- 屏幕宽高比:$x:y$。
限制条件:
- $1 \leq a, b, x, y \leq 2 \times 10^9$
输出格式
如果存在满足条件的调整尺寸,输出两个整数,分别表示屏幕的宽和高。如果无法满足条件,则输出 0 0。
示例
示例 1
输入:
800 600 4 3
输出:
800 600
解释:
- 屏幕比例为 $4:3$,可以直接容纳在 $800 \times 600$ 内,输出原始尺寸。
示例 2
输入:
1920 1200 16 9
输出:
1920 1080
解释:
- 按照比例 $16:9$,调整后的屏幕最大尺寸为 $1920 \times 1080$,符合限制条件。
示例 3
输入:
1 1 1 2
输出:
0 0
解释:
- 不可能调整出宽高比为 $1:2$ 且小于等于 $1 \times 1$ 的屏幕。
Python代码实现
以下是问题的 Python 实现代码:
def gcd(x, y):"""计算两个数的最大公约数"""return y if x == 0 else gcd(y % x, x)def main():# 读取输入a, b, x, y = map(int, input().split())# 计算 x 和 y 的最大公约数,约分比例g = gcd(x, y)x //= gy //= g# 计算缩放比例u = a // xv = b // yfactor = min(u, v)# 判断是否可行if factor > 0:print(factor * x, factor * y)else:print(0, 0)if __name__ == "__main__":main()
代码详解
-
最大公约数函数 (
gcd):- 使用递归方式计算两个数的最大公约数,确保比例 $x:y$ 化简为最简分数。
-
输入处理:
- 使用
map(int, input().split())读取用户提供的宽高限制 $a, b$ 以及比例 $x, y$。
- 使用
-
比例化简:
- 将 $x$ 和 $y$ 分别除以它们的最大公约数 $g$,得到最简分数形式。
-
计算缩放比例:
- 计算分别可容纳的倍数:
- $u = a // x$ 表示 $a$ 中可以容纳的宽度倍数;
- $v = b // y$ 表示 $b$ 中可以容纳的高度倍数。
- 选择最小的倍数作为最终缩放因子
factor = min(u, v)。
- 计算分别可容纳的倍数:
-
结果判断与输出:
- 如果
factor > 0,输出调整后的屏幕尺寸; - 否则,输出
0 0。
- 如果
示例测试
示例 1
输入:
800 600 4 3
输出:
800 600
解释:
- 屏幕比例为 $4:3$,可以直接容纳在 $800 \times 600$ 内,输出原始尺寸。
示例 2
输入:
1920 1200 16 9
输出:
1920 1080
解释:
- 按照比例 $16:9$,调整后的屏幕最大尺寸为 $1920 \times 1080$,符合限制条件。
示例 3
输入:
1 1 1 2
输出:
0 0
解释:
- 不可能调整出宽高比为 $1:2$ 且小于等于 $1 \times 1$ 的屏幕。
实际应用场景
-
分辨率优化:
- 在显示设备中,需要根据用户提供的边界限制计算最优的显示分辨率。
- 应用场景如投影仪、屏幕调整等。
-
视频裁剪:
- 在视频剪辑中,需要调整视频画面的宽高比以适配不同的显示器。
-
工业设计:
- 用于计算工业设备中,如何最大化利用有限空间展示屏幕内容。
总结
这道题目考察了数学中的比例与最大公约数的基本应用,同时结合实际应用场景(显示器分辨率调整),非常贴近实际问题。通过简洁的代码实现,可以在 $O(\log(\min(x, y)))$ 的时间复杂度内解决问题。
希望这篇文章能对你有所帮助!如果喜欢,记得点赞支持哦 😊~
相关文章:
题解:监控屏幕调整问题
问题描述 Reca 公司生产高端显示器,其中最受欢迎的型号是 AB999。屏幕尺寸为 $x \times y$ 的比例。由于某些生产特性,屏幕参数总是整数。最终,屏幕边长比例 $x:y$ 需要适应用户的需求。 为了满足用户需求,公司需要调整屏幕尺寸…...
C语言----指针
目录 1.概念 2.格式 3.指针操作符 4.初始化 1. 将普通变量的地址赋值给指针变量 a. 将数组的首地址赋值给指针变量 b. 将指针变量里面保存的地址赋值给另一个指针变量 5.指针运算 5.1算术运算 5.2 关系运算 指针的大小 总结: 段错误 指针修饰 1. con…...
树莓派之旅-在wsl-x86-64 上进行树莓派的交叉编译
前情提要: 想把自己花里胡哨的终端丢到树莓派上去,可是树莓派算力不够,编译时间过于漫长 交叉编译 定义网上有,懒得复制了,大概就是在本机电脑上编译目标平台的可执行文件 这里的目标平台是树莓派 使用 uname -m …...
nature reviews genetics | 需要更多的针对不同种族的癌症基因组图谱研究,促进精准治疗和维护治疗公平权益
–https://doi.org/10.1038/s41576-024-00796-w Genomic landscape of cancer in racially and ethnically diverse populations 研究团队和单位 Ulrike Peters–Public Health Sciences Division, Fred Hutchinson Cancer Center Claire E. Thomas–Public Health Scienc…...
代码随想录算法训练营day18
代码随想录算法训练营 —day18 文章目录 代码随想录算法训练营前言一、530.二叉搜索树的最小绝对差递归法迭代法 二、501.二叉搜索树中的众数普通二叉树的方法递归法中序迭代法 三、 236. 二叉树的最近公共祖先递归法 总结 前言 今天是算法营的第18天,希望自己能够…...
Kafka安全优化文档:漏洞修复到安全加固
文章目录 1.1.漏洞修复1.1.1.Apache Kafka反序列化漏洞1.1.2.pm2-kafka代码执行漏洞1.1.3.Apache Kafka安全绕过漏洞1.1.4.Apache Kafka Distribution - Schema Repository跨站请求伪造漏洞1.1.5.Apache Kafka输入验证错误漏洞的补丁1.1.6.Apache Kafka信息泄露漏洞1.1.7.Apach…...
Markdown如何添加任务列表-复选框的添加
Markdown如何添加任务列表-复选框的添加 前言语法讲解使用场景及应用实例代码整和渲染结果小结其他文章快来试试吧☺️ Markdown如何添加任务列表-复选框的添加👈点击这里也可查看 前言 To-do任务列表是一种很常见的时间管理工具,它适用于工作计划&…...
基于下垂控制的构网变换器功率控制【微电网变流器】【Simulink】
目录 主要内容 理论研究 整体模型 PQ计算模块 功率控制模块 PWM反馈模块 结果一览 下载链接 主要内容 该仿真针对微电网中分布式电源接入后产生的谐波影响,除了污染网络外,还会恶化微电网变流器输出电流,为了消除谐波影响&a…...
AI定义汽车/跨域融合/整车智能,汽车智能化2.0时代新机会来了
汽车智能化2.0,产业正在发生深度变革。 一方面,AI大模型开始在多个域同步赋能智能汽车,从智能座舱到智能驾驶,再到底盘域,AI大模型正在快速推动汽车变革为超级智能体,AI定义汽车时代开始来临。 另一方面&…...
(leetcode算法题)10. 正则表达式匹配
10. 正则表达式匹配 - 力扣(LeetCode) 此题的要求一个字符串 s 和一个字符规律 p之间支持 . 和 * 的正则表达式匹配 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s 的,而不是部分字符串…...
SpringCloudAlibaba实战入门之Sentinel服务降级和服务熔断(十五)
一、Sentinel概述 1、Sentinel是什么 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 一句话概括:sentinel即Hystrix的替代品,官网: https://sentinelguard.io/zh…...
使用爬虫技术获取网页中的半结构化数据
目录 前言1. 半结构化数据与爬虫技术简介1.1 半结构化数据的定义与特性1.2 爬虫技术的基本原理 2. 爬取半结构化数据的实现过程2.1 明确目标与准备2.2 发送HTTP请求2.3 解析网页内容2.4 动态内容的处理2.5 数据存储与清洗 3. 技术挑战与应对策略3.1 处理反爬机制3.2 提高爬取效…...
2025/1/1 路由期末复习作业二
呼呼呼祝大家元旦节快乐啦!(我顶着我超重的黑眼圈说) 昨天一个人在寝室一边吃泡面,一边看步步惊心,一边吃一边哭呜呜呜呜呜若曦为什么不和八爷在一起好好爱,就因为他不当皇帝蛮!难测最是帝王心…...
OpenCV-Python实战(13)——图像轮廓
一、找轮廓 cv2.findContours() contours,hierarchy cv2.findContours(image*,mode*,method*) contours:找到的所有轮廓数组,数组内的元素为轮廓像素点坐标。 hierarchy:轮廓间的层次关系。 image:二值图像(cv2.t…...
javascript变量
变量 命名规范 以 字母、数字、下划线、美元符号 $ 组成、不能以 数字开头、且不能使用 js 中的关键字。 命名规范推荐采用小驼峰 命名法 。类名 采用 大驼峰命名。 var 声明变量的特点 在 script 上下文中定义的是 全局变量,全局变量会自动称为 window的属性。 在…...
在K8S中,如何查看kubelet组件的日志?
在kubernetes中,查看Kubelet组件的日志可以通过几种不同的方法。以下是详细的步骤: 1. 使用journalctl命令: 如果kubelet是通过systemd方式部署,你可以使用journalctl命令来查看其日志。执行journalctl -u kubelet将显示Kubelet…...
android studio android sdk下载地址
android studio安装后,因为公司网络原因,一直无法安装android sdk 后经过手机网络,安装android sdk成功如下,也可以手动下载后指定android sdk本地目录 https://dl.google.com/android/repository/source-35_r01.zip https://dl…...
Fetch处理大模型流式数据请求与解析
为什么有的大模型可以一次返回多个 data? Server-Sent Events (SSE):允许服务器连续发送多个 data: 行,每个代表一个独立的数据块。 流式响应:大模型服务通常以流式响应方式返回数据,提高响应速度。 批量处理&#x…...
FPGA自学之路:到底有多崎岖?
FPGA,即现场可编程门阵列,被誉为硬件世界的“瑞士军刀”,其灵活性和可编程性让无数开发者为之倾倒。但谈及FPGA的学习难度,不少人望而却步。那么,FPGA自学之路到底有多崎岖呢? 几座大山那么高?…...
从0到机器视觉工程师(二):封装调用静态库和动态库
目录 静态库 编写静态库 使用静态库 方案一 方案二 动态库 编写动态库 使用动态库 方案一 方案二 方案三 总结 静态库 静态库是在编译时将库的代码合并到最终可执行程序中的库。静态库的优势是在编译时将所有代码包含在程序中,可以使程序独立运行&…...
Youtu-Parsing快速部署指南:一键启动Web服务,5分钟开始解析文档
Youtu-Parsing快速部署指南:一键启动Web服务,5分钟开始解析文档 1. 引言:为什么选择Youtu-Parsing 在日常工作中,我们经常需要处理各种文档——合同、报告、表格、发票等。传统的手动录入方式不仅效率低下,还容易出错…...
Pandas :索引机制与数据访问
Pandas 的运行逻辑建立在索引对象之上。索引对象不仅用于显示标签,更承担“标签查找”的职责。所有基于标签的访问与运算,都会先经过索引对象完成查找与匹配,再进入数据区域。示例数据:import pandas as pd df pd.DataFrame({ …...
Ostrakon-VL像素终端实战:用实时摄像头完成便利店突击巡检
Ostrakon-VL像素终端实战:用实时摄像头完成便利店突击巡检 1. 像素特工终端介绍 想象一下,你是一名便利店巡检员,每天需要检查几十家门店的商品陈列、价签准确性和店面整洁度。传统方法需要手动拍照记录、填写表格,既耗时又容易…...
Phi-4-mini-reasoningGPU算力适配:A10/A100/T4多卡环境下的推理吞吐调优
Phi-4-mini-reasoning GPU算力适配:A10/A100/T4多卡环境下的推理吞吐调优 1. 模型特性与部署概述 Phi-4-mini-reasoning 是一款专注于推理任务的文本生成模型,特别擅长处理数学题、逻辑题等需要多步分析和简洁结论输出的场景。与通用聊天模型不同&…...
远程工作事故树:一次误删库引发的跨国追责
远程协作下的“脆弱”系统深夜,伦敦办公室的数据库工程师在连续工作十二小时后,敲下了一条他以为指向“测试环境”的删除命令。与此同时,上海的测试团队正在为次日的上线进行最后一轮回归验证。六小时后,当阳光照进浦东的办公室&a…...
房屋建筑学-门窗
一、门窗概述门窗的作用——采光、通风、通行(按照国家相应的规范要求,一般居住建筑的起居室、卧室的窗户面积不应小于地板面积的1/7;公建建筑方面,学校为1/5,医院手术室为1/2~1/3,辅助房间为1/12ÿ…...
OpenClaw多模型对比:Phi-3-mini-128k-instruct与Qwen在自动化任务中的表现
OpenClaw多模型对比:Phi-3-mini-128k-instruct与Qwen在自动化任务中的表现 1. 测试背景与实验设计 去年夏天,当我第一次尝试用OpenClaw自动化处理日常办公任务时,最困扰我的问题就是模型选择。不同的模型在理解能力、响应速度和资源消耗上差…...
OpenClaw硬件监控:Gemma-3-12b-it分析传感器数据并预警
OpenClaw硬件监控:Gemma-3-12b-it分析传感器数据并预警 1. 为什么需要AI驱动的硬件监控? 去年夏天,我的家用服务器因为CPU散热器故障导致过热关机,丢失了正在处理的科研数据。这件事让我开始思考:传统的阈值告警太被…...
10个HTTPie CLI高级功能实战技巧:从入门到精通API调试
10个HTTPie CLI高级功能实战技巧:从入门到精通API调试 【免费下载链接】cli 🥧 HTTPie CLI — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. 项目地址: https:/…...
OpenClaw+Qwen3.5-9B:法律文档审查助手实战
OpenClawQwen3.5-9B:法律文档审查助手实战 1. 为什么需要AI法律文档助手? 去年接手一个跨境合作项目时,我曾在72小时内手动审阅了137页的英文合同草案。那段经历让我意识到:传统人工审查不仅效率低下,还容易因疲劳遗…...
