题解:洛谷 AT_abc463_a [ABC463A] 16:9 【题目来源】洛谷AT_abc463_a [ABC463A] 16:9 - 洛谷【题目描述】There is an image with a width ofX XXpixels and a height ofY YYpixels. Determine whether the ratio of the width to the height is16 1616to9 99, that is, whetherX : Y 16 : 9 X:Y16:9X:Y16:9.有一张宽度为X XX像素、高度为Y YY像素的图片。请判断其宽高比是否为16 : 9 16:916:9即是否满足X : Y 16 : 9 X:Y 16:9X:Y16:9。【输入】The input is given from Standard Input in the following format:X XXY YY【输出】If the ratio of the width to the height is16 1616to9 99, outputYes; otherwise, outputNo.【输入样例】800 450【输出样例】Yes【核心思想】问题分析给定图片宽度X XX和高度Y YY需要判断宽高比是否为16 : 9 16:916:9。即是否存在正整数k kk使得X 16 k X 16kX16k且Y 9 k Y 9kY9k。等价于判断X gcd ⁡ ( X , Y ) 16 \frac{X}{\gcd(X,Y)} 16gcd(X,Y)X​16且Y gcd ⁡ ( X , Y ) 9 \frac{Y}{\gcd(X,Y)} 9gcd(X,Y)Y​9。算法选择欧几里得算法辗转相除法计算X XX和Y YY的最大公约数g gcd ⁡ ( X , Y ) g \gcd(X,Y)ggcd(X,Y)比例化简判定将X XX和Y YY同时除以g gg得到最简比检查是否等于16 : 9 16:916:9关键步骤读取输入X XX宽度、Y YY高度计算gcd ⁡ \gcdgcdt gcd ⁡ ( X , Y ) t \gcd(X, Y)tgcd(X,Y)判定比例若16 × t X 16 \times t X16×tX且9 × t Y 9 \times t Y9×tY输出Yes否则输出No等价于检查X t 16 \frac{X}{t} 16tX​16且Y t 9 \frac{Y}{t} 9tY​9时间/空间复杂度时间复杂度O ( log ⁡ min ⁡ ( X , Y ) ) O(\log \min(X, Y))O(logmin(X,Y))辗转相除法的复杂度空间复杂度O ( 1 ) O(1)O(1)仅使用常数个变量欧几里得算法判定比例的核心思想最简比唯一性任意两个正整数的比可以唯一表示为最简分数形式通过gcd ⁡ \gcdgcd约分后得到。若最简比等于16 : 9 16:916:9则原比必为16 : 9 16:916:9的某个整数倍避免浮点误差不直接计算X Y \frac{X}{Y}YX​并与16 9 \frac{16}{9}916​比较可能产生浮点精度问题而是利用整数运算和gcd ⁡ \gcdgcd进行精确判定等价变形技巧X : Y 16 : 9 ⇔ 9 X 16 Y X:Y 16:9 \Leftrightarrow 9X 16YX:Y16:9⇔9X16Y也可通过交叉相乘判定但gcd ⁡ \gcdgcd方法同时适用于更复杂的比例验证场景辗转相除的高效性欧几里得算法通过取模运算快速缩小问题规模时间复杂度为对数级别远优于枚举适用于比例判定、分数化简、有理数比较等基础数论问题【算法标签】#入门 #欧几里得算法【代码详解】#includebits/stdc.husingnamespacestd;intx,y;// x: 图片宽度, y: 图片高度// 辗转相除法求最大公约数GCDintgcd(inta,intb){returnb?gcd(b,a%b):a;}intmain(){cinxy;// 读入图片的宽度和高度inttgcd(x,y);// 计算 x 和 y 的最大公约数// 判断化简后的比例是否为 16:9// 若 x:y 16:9则 x 16*k, y 9*kk 为某个正整数// 即 x/gcd(x,y) 16 且 y/gcd(x,y) 9// 等价于 16*t x 且 9*t y其中 t gcd(x,y)if(16*tx9*ty)coutYesendl;// 宽高比为 16:9elsecoutNoendl;// 宽高比不为 16:9return0;}【运行结果】800 450 Yes

相关新闻

最新新闻

基于YOLOv8的柑橘病害检测实战:从VOC/YOLO数据集到模型部署

基于YOLOv8的柑橘病害检测实战:从VOC/YOLO数据集到模型部署

简介:目标检测是计算机视觉的核心任务之一,它通过定位和识别图像中的物体,为自动化决策提供关键信息。其原理通常基于深度学习模型,如YOLO系列,通过卷积神经网络提取特征并预测边界框与类别。这项技术的价值在于能够替…

2026/8/28 7:04:44
基于DWT-DCT-SVD的鲁棒数字图像水印技术原理与MATLAB实现

基于DWT-DCT-SVD的鲁棒数字图像水印技术原理与MATLAB实现

简介:数字图像水印是一种将版权信息、认证数据等隐藏于图像中的信息隐藏技术,其核心原理在于利用人类视觉系统的冗余特性,在图像的重要感知分量中嵌入不可见的标记。该技术通过频域变换(如离散小波变换DWT和离散余弦变换DCT&#…

2026/8/28 7:04:44
LSGAN原理与实战:用最小二乘损失解决GAN训练不稳定问题

LSGAN原理与实战:用最小二乘损失解决GAN训练不稳定问题

1. 项目概述:从“真伪判别”到“距离度量”的思维跃迁 如果你在生成对抗网络(GAN)的实战中摸爬滚打过一阵子,大概率会对一个场景记忆犹新:辛辛苦苦训练出来的生成器,产出的图片要么模糊不清,要么…

2026/8/28 7:04:44
数学建模G题实战闭环:LaTeX、代码与论文协同工作流

数学建模G题实战闭环:LaTeX、代码与论文协同工作流

简介:数学建模是融合问题抽象、算法实现与科学表达的系统工程,其核心在于模型可复现、结果可验证、论文可交付。从原理看,真实场景建模需兼顾数据清洗鲁棒性、求解器兼容性与可视化规范性;技术价值体现在LaTeX排版精度、Python环境…

2026/8/28 7:04:44
OFDM时间同步算法原理与MATLAB实战

OFDM时间同步算法原理与MATLAB实战

简介:OFDM时间同步是保障子载波正交性的物理层基础技术,其核心在于精确捕获符号起始位置,避免因定时偏差引发的载波间干扰(ICI)和FFT窗偏移。其原理依赖训练序列匹配、循环前缀自相关、相位跳变检测等信号处理机制&…

2026/8/28 7:04:44
编程Agent核心机制拆解:从零搭建轻量级Coding Agent

编程Agent核心机制拆解:从零搭建轻量级Coding Agent

最近圈子里讨论最多的话题,除了各种 Agent 编程框架,就是 Meta 首款编程 Agent 的消息。有人说它是“能自己干活的程序员”,也有人说它背后模型的能力已经直追 Opus 5。作为一个长期写后端、也一直在关注 AI 编程工具的人,我对“发…

2026/8/28 6:59:44