某块矩形墙壁由 a*b 块瓷砖构成,每块瓷砖都是 x*y 的矩形。现在想要从左上角向右下角,从右上角向左下角划两条直线,请问直线与每块瓷砖的边界线产生的交点共有多少个?
一行四个正整数,墙壁的长有 a 块瓷砖,宽有 b 块瓷砖,瓷砖的长 x ,宽 y 。
一个正整数,交点数目。
2 2 1 1
5
2 3 2 1
9
考点:数论 · 基础数学
限制 1 秒 / 256MB | 标准输入输出
推荐方向:数论
围绕整除、质因数、同余的经典结论与筛法。
思路框架(数论 通法 · 非本题专属)
实现要点:模运算规律:(a+b)%m = ((a%m)+(b%m))%m,乘法则同理;减法要 +m 防止负数。
复杂度:时间 O(√n) 分解 / O(n log log n) 筛 | 空间 O(n) 筛表
该范式的通法易错点
样例 1:输入 2 2 1 1 → 输出 5
产生5个交点如图所示:
样例 2:输入 2 3 2 1 → 输出 9
产生9个交点如图所示:
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2023年秋招-京东-技术通用岗位-第九批笔试;2024年春招-京东-技术通用岗位-第五批笔试。