当前位置: 首页 > news >正文

题解:监控屏幕调整问题

问题描述

Reca 公司生产高端显示器,其中最受欢迎的型号是 AB999。屏幕尺寸为 $x \times y$ 的比例。由于某些生产特性,屏幕参数总是整数。最终,屏幕边长比例 $x:y$ 需要适应用户的需求。

为了满足用户需求,公司需要调整屏幕尺寸,使其满足以下条件:

  1. 屏幕能够完整容纳在用户给定的宽高限制 $a \times b$ 内;
  2. 调整后屏幕的宽高比必须等于 $x:y$;
  3. 调整后的屏幕尺寸尽可能接近用户提供的最大边界 $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()

代码详解

  1. 最大公约数函数 (gcd)

    • 使用递归方式计算两个数的最大公约数,确保比例 $x:y$ 化简为最简分数。
  2. 输入处理

    • 使用 map(int, input().split()) 读取用户提供的宽高限制 $a, b$ 以及比例 $x, y$。
  3. 比例化简

    • 将 $x$ 和 $y$ 分别除以它们的最大公约数 $g$,得到最简分数形式。
  4. 计算缩放比例

    • 计算分别可容纳的倍数:
      • $u = a // x$ 表示 $a$ 中可以容纳的宽度倍数;
      • $v = b // y$ 表示 $b$ 中可以容纳的高度倍数。
    • 选择最小的倍数作为最终缩放因子 factor = min(u, v)
  5. 结果判断与输出

    • 如果 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$ 的屏幕。

实际应用场景

  1. 分辨率优化

    • 在显示设备中,需要根据用户提供的边界限制计算最优的显示分辨率。
    • 应用场景如投影仪、屏幕调整等。
  2. 视频裁剪

    • 在视频剪辑中,需要调整视频画面的宽高比以适配不同的显示器。
  3. 工业设计

    • 用于计算工业设备中,如何最大化利用有限空间展示屏幕内容。

总结

这道题目考察了数学中的比例与最大公约数的基本应用,同时结合实际应用场景(显示器分辨率调整),非常贴近实际问题。通过简洁的代码实现,可以在 $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到机器视觉工程师(二):封装调用静态库和动态库

目录 静态库 编写静态库 使用静态库 方案一 方案二 动态库 编写动态库 使用动态库 方案一 方案二 方案三 总结 静态库 静态库是在编译时将库的代码合并到最终可执行程序中的库。静态库的优势是在编译时将所有代码包含在程序中,可以使程序独立运行&…...

如何深度定制MPC-HC实现专业级影音播放:终极实战配置指南

如何深度定制MPC-HC实现专业级影音播放:终极实战配置指南 【免费下载链接】mpc-hc MPC-HCs main repository. For support use our Trac: https://trac.mpc-hc.org/ 项目地址: https://gitcode.com/gh_mirrors/mpc/mpc-hc 想要将MPC-HC从普通播放器升级为专业…...

在Windows上安装安卓应用的终极指南:告别模拟器,享受原生体验

在Windows上安装安卓应用的终极指南:告别模拟器,享受原生体验 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾梦想在Windows电脑上直接…...

CVPR投稿后,我是如何用一篇高质量的Rebuttal说服审稿人的(附真实邮件模板)

CVPR投稿后,我是如何用一篇高质量的Rebuttal说服审稿人的(附真实邮件模板) 在计算机视觉领域的顶级会议CVPR投稿过程中,Rebuttal环节往往成为决定论文命运的关键转折点。许多研究者花费数月精心打磨论文,却在收到审稿意…...

【MYSQL】在Centos7和ubuntu22.04环境下安装

一.MYSQL在Centos7下的安装注意:安装与卸载中,⽤⼾全部切换成为root初期练习,mysql不进⾏⽤⼾管理,全部使⽤root进⾏1.卸载内置环境1-1卸载不要的环境[rootVM-0-3-centos ~]$ ps ajx |grep mariadb # 先检查是否有mariadb存在 131…...

嵌入式音频开发避坑指南:如何用一颗模组搞定AEC、ANS与啸叫抑制

摘要:在智能门禁、会议终端、车载语音等嵌入式产品中,回声消除(AEC)、噪声抑制(ANS)和啸叫抑制(AFC)是三大“硬骨头”。本文将深入解析A-59F多功能语音处理模组的架构与特性&#xf…...

Ubuntu 20.04远程桌面翻车记:手把手教你从LightDM救回默认GNOME桌面

Ubuntu 20.04桌面环境救援指南:从LightDM回归GNOME的完整方案 那天下午,实验室的Ubuntu服务器突然变得陌生——熟悉的GNOME桌面消失了,取而代之的是一个简陋的登录界面。前一天还能流畅运行的深度学习模型,现在连Jupyter Noteboo…...

保姆级教程:用Vue3+webrtc-streamer搞定海康/大华监控的Web实时播放(附完整代码)

Vue3与WebRTC-streamer实战:企业级监控视频流集成指南 监控系统在现代企业管理中扮演着重要角色,而将监控视频无缝集成到Web应用中已成为许多开发者的刚需。本文将带你从零开始,使用Vue3和webrtc-streamer实现海康、大华等主流监控设备的实时…...

轻量级推荐系统MiniOneRec:从协同过滤到服务部署的实践指南

1. 项目概述:一个轻量级、高可用的推荐系统引擎在数据驱动的今天,推荐系统早已不是大型互联网公司的专属。无论是电商平台、内容社区,还是企业内部的知识库、工具集,个性化推荐都已成为提升用户体验和业务效率的核心能力。然而&am…...

Pikachu(皮卡丘靶场)实战XSS:从标签事件到高级Payload的攻防演练

1. 初识XSS与Pikachu靶场环境搭建 跨站脚本攻击(XSS)就像在别人的网页里偷偷塞小纸条,当其他用户打开这个网页时,小纸条上的内容就会被浏览器执行。想象一下,你在图书馆的公共留言板上贴了一张看似普通的便利贴&#x…...

企业内网应用安全调用外部大模型的Taotoken接入方案

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业内网应用安全调用外部大模型的Taotoken接入方案 应用场景类,探讨具有安全合规要求的企业如何安全地引入AI能力&…...