前言
普及组月赛第一题。别的题解语言有点高深,我补篇题解。
思路
显然,/(/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
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/282284.html