前言
普及组月赛第一题。别的题解语言有点高深,我补篇题解。
思路
显然,\(\lfloor \dfrac{l}{x}\rfloor, \lfloor \dfrac{l+1}{x}\rfloor, \cdots, \lfloor \dfrac{r}{x}\rfloor\) 是连续的整数。
而且,显然有 \(\operatorname{gcd}(c, c+1) = 1\)。
换句话说,只要 \(\lfloor \dfrac{l}{x}\rfloor \ne \lfloor \dfrac{r}{x}\rfloor\),结果就为 \(1\)。如果两者相等,答案就是 \(\lfloor \dfrac{l}{x}\rfloor\) 啦。
代码
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
long long l, r, x; //本题唯一坑点,要记得开 long long。
scanf("%lld%lld%lld", &l, &r, &x);
if (l / x != r / x) puts("1");
else printf("%lld\n", l / x);
}
return 0;
}
希望能帮助到大家!
首发:2022-07-27 19:19:22