题解:洛谷 AT_abc465_a [ABC465A] Supermajority
本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏算法题解C与Python实现附上汇总贴算法竞赛备考冲刺必刷题C | 汇总【题目来源】洛谷AT_abc465_a [ABC465A] Supermajority【题目描述】给定正整数A AA和B BB。如果A B × 2 3 A B \times \frac{2}{3}AB×32输出Yes否则输出No。【输入】输入由标准输入给出格式如下A AAB BB【输出】输出答案。【输入样例】316 465【输出样例】Yes【核心思想】问题分析给定正整数A AA和B BB判断A B × 2 3 A B \times \frac{2}{3}AB×32是否成立。这是一个整数比较 浮点避免问题核心在于将分数不等式转化为整数乘法比较消除浮点精度风险。算法选择不等式变形A B × 2 3 ⇔ 3 A 2 B A B \times \frac{2}{3} \Leftrightarrow 3A 2BAB×32⇔3A2B通过交叉相乘将除法转化为乘法关键步骤读入数据读取A , B A, BA,B整数比较若3 × A 2 × B 3 \times A 2 \times B3×A2×B输出Yes否则输出No时间/空间复杂度时间复杂度O ( 1 ) O(1)O(1)空间复杂度O ( 1 ) O(1)O(1)整数运算防浮点误差的核心思想交叉相乘等价变换A 2 B 3 ⇔ 3 A 2 B A \frac{2B}{3} \Leftrightarrow 3A 2BA32B⇔3A2B两边同乘分母3 33消去分数完全避免浮点运算精度保证整数乘法精确无误而浮点除法B × 2.0 / 3.0 B \times 2.0 / 3.0B×2.0/3.0可能因精度问题导致边界判断错误边界安全即使3 A 2 B 3A 2B3A2B恰好相等整数比较也能正确判定为No符合严格大于的要求适用于基础不等式判定、浮点精度敏感类入门问题【算法标签】#入门 #模拟【代码详解】#includebits/stdc.husingnamespacestd;inta,b;// a, b: 输入的两个正整数intmain(){cinab;// 读入两个正整数 A 和 Bif(3*ab*2)// 判断 A B * 2/3等价于 3A 2B避免浮点运算coutYesendl;// 条件成立输出 YeselsecoutNoendl;// 条件不成立输出 Noreturn0;}【运行结果】316 465 Yes