统计线段上格点的数量
2024-04-15 12:24:31
发布于:浙江
128阅读
0回复
0点赞
题意解析
令 ,那么我们可以将题目转化为:求最多可以将 和 均分为多少段,使得每段的长度均为整数。
令均分的段数为 ,那么我们需要求的结果就是找到一个可以整除 和 的最大的 。
也就是 和 的最大公约数,即 。
答案即为 。
AC代码
#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) {
return b ? gcd(b, a % b) : a;
}
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; cin >> _;
while (_--) {
int xa, ya, xb, yb;
cin >> xa >> ya >> xb >> yb;
int x = abs(xa - xb), y = abs(ya - yb);
cout << gcd(x, y) + 1 << '\n';
}
return 0;
}
复杂度分析
对于每个 求取 和 的最大公约数时间复杂度为 。
全部评论 1
6
2024-07-27 来自 广东
0
有帮助,赞一个