☰
题解:洛谷 AT_abc465_a [ABC465A] Supermajority
2026/10/9 19:27:09 网站建设 项目流程

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。

欢迎大家订阅我的专栏:算法题解:C++与Python实现!

附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总


【题目来源】

洛谷:AT_abc465_a [ABC465A] Supermajority

【题目描述】

给定正整数A AA和B BB。

如果A > B × 2 3 A > B \times \frac{2}{3}A>B×32​,输出Yes;否则,输出No。

【输入】

输入由标准输入给出,格式如下:

A AAB BB

【输出】

输出答案。

【输入样例】

316 465

【输出样例】

Yes

【核心思想】

  1. 问题分析:给定正整数A AA和B BB,判断A > B × 2 3 A > B \times \frac{2}{3}A>B×32​是否成立。这是一个整数比较 + 浮点避免问题,核心在于将分数不等式转化为整数乘法比较,消除浮点精度风险。

  2. 算法选择:

    • 不等式变形:A > B × 2 3 ⇔ 3 A > 2 B A > B \times \frac{2}{3} \Leftrightarrow 3A > 2BA>B×32​⇔3A>2B,通过交叉相乘将除法转化为乘法
  3. 关键步骤:

    • 读入数据:读取A , B A, BA,B
    • 整数比较:若3 × A > 2 × B 3 \times A > 2 \times B3×A>2×B,输出Yes;否则输出No
  4. 时间/空间复杂度:

    • 时间复杂度:O ( 1 ) O(1)O(1)
    • 空间复杂度:O ( 1 ) O(1)O(1)
  5. 整数运算防浮点误差的核心思想:

    • 交叉相乘等价变换:A > 2 B 3 ⇔ 3 A > 2 B A > \frac{2B}{3} \Leftrightarrow 3A > 2BA>32B​⇔3A>2B,两边同乘分母3 33消去分数,完全避免浮点运算
    • 精度保证:整数乘法精确无误,而浮点除法B × 2.0 / 3.0 B \times 2.0 / 3.0B×2.0/3.0可能因精度问题导致边界判断错误
    • 边界安全:即使3 A = 2 B 3A = 2B3A=2B(恰好相等),整数比较也能正确判定为No,符合严格大于的要求
    • 适用于基础不等式判定、浮点精度敏感类入门问题

【算法标签】

#入门 #模拟

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;inta,b;// a, b: 输入的两个正整数intmain(){cin>>a>>b;// 读入两个正整数 A 和 Bif(3*a>b*2)// 判断 A > B * 2/3,等价于 3A > 2B(避免浮点运算)cout<<"Yes"<<endl;// 条件成立,输出 Yeselsecout<<"No"<<endl;// 条件不成立,输出 Noreturn0;}

【运行结果】

316 465 Yes

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询