1 条题解

  • 0
    @ 2024-12-7 14:08:09

    首先看一下数据氛围!数据范围疯狂暗示着 O1O(1) 做法。

    观察 ll+1l+2l+3...r1rl,l+1,l+2,l+3,...,r-1,r ,这些数字之间去掉逗号之后,成了一个巨大的数,然而模数是 99 ,很小。那么为什么模数是 99 呢?于是突破点就来了。

    继续观察 ll+1l+2l+3...r1rl,l+1,l+2,l+3,...,r-1,r 。 这些数字之前一旦去掉了逗号,那么上述数字对最后巨大数字的贡献是 1010 的若干次方。

    也就是 l(10)?+(l+1)(10)?+...+(r)(10)?l*(10)^? + (l+1)*(10)^? + ... + (r)*(10)^? (?代表“若干”).

    1010 的若干次方 除以 99 的余数 恒为 11 !!!

    #include <iostream>
    #include <cstdio>
    using namespace std;
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		long long l,r;
    		cin>>l>>r;
    		long long cnt=(r-l+1)%9;;
    		long long ans=cnt*(l%9)%9+(cnt)*(cnt-1)%9*5%9;
    		cout<<ans%9<<endl;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    159
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    17
    已通过
    10
    上传者