Codeforces Yet Another Counting Problem(數學)

在這裏插入圖片描述
題意:
[l,r]範圍內多少個數滿足 (x % b) % a != (x % a) % b。

思路:
打表找規律
小心數據範圍

代碼:

#include <bits/stdc++.h>
#define ll long long
#define Max 0x3f3f3f3f3f3f3f3f
using namespace std;
int cnt[1000000];
int main()
{
    int a,b,t,q;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d%d",&a,&b,&q);
        for(int i=1;i<=a*b;++i)
        {
            cnt[i]=cnt[i-1];
            if(i%a%b!=i%b%a) cnt[i]++;
        }
        while(q--)
        {
            ll l,r;
            scanf("%lld%lld",&l,&r);
            ll ans=cnt[a*b]*(r/(a*b)-(l-1)/(a*b))+cnt[r%(a*b)]-cnt[(l-1)%(a*b)];
            printf("%lld\n",ans);
        }
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章