CF1720A 题解
前言
和官方题解稍有不一样。貌似代码更好理解?
思路
我们假设
化简:
也就是
假设
不过这样不严谨,因为
由于
进一步地,
至此本题就做完了。时间复杂度为
完整代码
#include <iostream>
#include <cstdio>
using namespace std;
int read()
{
char op = getchar(); int x = 0, f = 1;
while (op < 48 || op > 57) {if (op == '-') f = -1; op = getchar();}
while (48 <= op && op <= 57) x = (x << 1) + (x << 3) + (op ^ 48), op = getchar();
return x * f;
}
void write(int x)
{
if (x < 0) putchar('-'), x = -x;
if (x > 9) write(x / 10);
putchar(x % 10 + 48);
}
LL gcd(LL x, LL y) {return y == 0 ? x : gcd(y, x%y);}
void solve()
{
int a = read(), b = read(), c = read(), d = read();
LL t1 = 1ll * a * d, t2 = 1ll * b * c, g = gcd(t1, t2); //注意 LL
if (g == 0) {putchar('0'), endl; return;} //特判
t1 /= g, t2 /= g; //如上分析的化简步骤
write((t1 != 0) + (t2 != 0)), putchar('\n');
}
int main()
{
int T = read();
while (T--) solve();
return 0;
}
希望能帮助到大家!
首发:2022-08-19 09:53:11
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?