CF1342C
题解思路:
我们就设
那么当
而
那么
那么
那么就相当于
当
那么
当
那么
那么一般情况
那么对于一个区间
那么就是
但我们少加了一些值,那么我们要再加上
但
AC CODE:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int T;
int main()
{
scanf("%d", &T);
while (T--)
{
ll a, b, q;
cin >> a >> b >> q;
if (a < b)
swap(a, b);
ll lcm = a * b / __gcd(a, b);
ll len = lcm - a;
while (q--)
{
ll ans = 0;
ll l, r;
cin >> l >> r;
ll x = r / lcm - l / lcm;
ans += x * len;
r %= lcm;
if (r >= a)
ans += r - a + 1;
l %= lcm;
if (l > a)
ans -= l - a;
cout << ans << ' ';
}
puts("");
}
return 0;
}