首页 > 其他分享 >ARC178B

ARC178B

时间:2024-11-16 15:45:06浏览次数:3  
标签:10 ARC178B 10a1 a1 a2 tmp2 mod

[ARC178B] 1 + 6 = 7

题面翻译

统计满足 X + Y = Z X+Y=Z X+Y=Z 且 X , Y , Z X,Y,Z X,Y,Z 在十进制下分别是 a 1 , a 2 , a 3 a_1,a_2,a_3 a1​,a2​,a3​ 位数的三元组个数,方案数对 998244353 998244353 998244353 取模。

数据范围: a i ≤ 1 0 9 a_i\le 10^9 ai​≤109

样例 #1

样例输入 #1

4
1 1 1
1 6 7
167 167 167
111 666 777

样例输出 #1

36
45
731780675
0

假设 a 1 ≤ a 2 a_1\le a_2 a1​≤a2​ 。可以肯定的是 a 1 a_1 a1​ 位数加 a 2 a_2 a2​ 位数不可能的到位数小于 a 2 a_2 a2​ 或位数大于 a 2 + 1 a_2+1 a2​+1 ,遇到时直接输出 0 0 0 。

我们令 t m p 1 tmp1 tmp1 为 a 1 a_1 a1​ 位数的个数, t m p 2 tmp2 tmp2 同理。

t m p 1 = 1 0 a 1 − 1 0 a 1 − 1 , t m p 2 = 1 0 a 2 − 1 0 a 2 − 1 tmp1=10^{a_1}-10^{a_1-1},tmp2=10^{a_2}-10^{a_2-1} tmp1=10a1​−10a1​−1,tmp2=10a2​−10a2​−1 。

分类讨论:

  • 当 a 1 ≠ a 2 , a 3 = a 2 + 1 a_1\ne a_2,a_3=a_2+1 a1​=a2​,a3​=a2​+1 时, X X X 可以取该位数内任意的数,而 Y Y Y 仅可取 [ 1 0 a 3 − X , 1 0 a 3 − 1 ] [10^{a_3}-X,10^{a_3}-1] [10a3​−X,10a3​−1] 内的数。, a n s = ∑ i = 1 0 a 1 − 1 1 0 a 1 − 1 i = ( 1 0 a 1 − 1 + 1 0 a 1 − 1 ) × t m p 1 2 ans=\sum_{i=10^{a_1-1}}^{10^{a_1}-1}i=\frac{(10^{a_1-1}+10^{a_1}-1)\times tmp1}{2} ans=∑i=10a1​−110a1​−1​i=2(10a1​−1+10a1​−1)×tmp1​。
  • 当 a 1 ≠ a 2 , a 3 = a 2 a_1\ne a_2,a_3=a_2 a1​=a2​,a3​=a2​ 时,可通过计算补集, a n s = t m p 1 × t m p 2 − ∑ i = 1 0 a 1 − 1 1 0 a 1 − 1 i = t m p 1 × t m p 2 − ( 1 0 a 1 − 1 + 1 0 a 1 − 1 ) × t m p 1 2 ans=tmp1\times tmp2-\sum_{i=10^{a1-1}}^{10^{a1}-1}i=tmp1\times tmp2-\frac{(10^{a_1-1}+10^{a_1}-1)\times tmp1}{2} ans=tmp1×tmp2−∑i=10a1−110a1−1​i=tmp1×tmp2−2(10a1​−1+10a1​−1)×tmp1​。
  • 当 a 1 = a 2 , a 3 = a 2 + 1 a_1=a_2,a_3=a_2+1 a1​=a2​,a3​=a2​+1 时,当 X ∈ [ 1 0 a 1 − 1 , 9 × 1 0 a 1 − 1 − 1 ] X\in[10^{a_1-1},9\times10^{a_1-1}-1] X∈[10a1​−1,9×10a1​−1−1] 时, Y ∈ [ 1 0 a 1 − X , 1 0 a 1 − 1 ] Y\in[10^{a_1}-X,10^{a_1}-1] Y∈[10a1​−X,10a1​−1] , Y Y Y 共有 X X X 种取法。当 X ∈ [ 9 × 1 0 a 1 − 1 , 1 0 a 1 − 1 ] X\in[9\times10^{a_1-1},10^{a_1}-1] X∈[9×10a1​−1,10a1​−1] 时,由于 Y Y Y 可取的最小值为 1 0 a 1 − 1 10^{a_1-1} 10a1​−1 , X + Y ≥ 1 0 a 3 X+Y\ge10^{a_3} X+Y≥10a3​ ,所以 Y Y Y 的取值有 t m p 2 tmp2 tmp2 种。所以 a n s = t m p 2 × 1 0 a 1 − 1 + ∑ i = 1 0 a 1 − 1 9 × 1 0 a 1 − 1 − 1 i = t m p 2 × 1 0 a 1 − 1 + ( 1 0 a 1 − 1 ) × ( 8 × 1 0 a 1 − 1 ) 2 ans=tmp2\times10^{a_1-1}+\sum_{i=10^{a_1-1}}^{9\times10^{a_1-1}-1}i=tmp2\times10^{a_1-1}+\frac{(10^{a_1}-1)\times(8\times10^{a_1-1})}{2} ans=tmp2×10a1​−1+∑i=10a1​−19×10a1​−1−1​i=tmp2×10a1​−1+2(10a1​−1)×(8×10a1​−1)​ 。
  • 当 a 1 = a 2 , a 3 = a 2 a_1=a_2,a_3=a_2 a1​=a2​,a3​=a2​ 时,可通过计算补集, a n s = t m p 1 × t m p 2 − t m p 2 × 1 0 a 1 − 1 + ∑ i = 1 0 a 1 − 1 9 × 1 0 a 1 − 1 − 1 i = t m p 1 × t m p 2 − t m p 2 × 1 0 a 1 − 1 + ( 1 0 a 1 − 1 ) × ( 8 × 1 0 a 1 − 1 ) 2 ans=tmp1\times tmp2-tmp2\times10^{a_1-1}+\sum_{i=10^{a_1-1}}^{9\times10^{a_1-1}-1}i=tmp1\times tmp2-tmp2\times10^{a_1-1}+\frac{(10^{a_1}-1)\times(8\times10^{a_1-1})}{2} ans=tmp1×tmp2−tmp2×10a1​−1+∑i=10a1​−19×10a1​−1−1​i=tmp1×tmp2−tmp2×10a1​−1+2(10a1​−1)×(8×10a1​−1)​ 。

code:

#include<bits/stdc++.h>
#define niyuan 499122177
#define mod 998244353
using namespace std;
long long ksm(long long a,long long b){
    long long res=1;
    while(b){
        if(b&1) res=res*a%mod;
        b>>=1;
        a=a*a%mod;
    }
    return res;
}
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        long long a1,a2,a3,ans;
        scanf("%lld%lld%lld",&a1,&a2,&a3);
        if(a1>a2) swap(a1,a2);
        if(a3<a2||a3>a2+1){
            printf("0\n");
            continue;
        }
        long long tmp1=9*ksm(10,a1-1)%mod;
        long long tmp2=9*ksm(10,a2-1)%mod;
        if(a1!=a2&&a3==a2+1) ans=(ksm(10,a1-1)+ksm(10,a1)-1)%mod*tmp1%mod*niyuan%mod;
        else if(a1!=a2&&a3==a2) ans=(tmp1*tmp2%mod-(ksm(10,a1-1)+ksm(10,a1)-1)%mod*tmp1%mod*niyuan%mod+mod)%mod;
        else if(a1==a2&&a3==a2+1) ans=(tmp2*ksm(10,a1-1)%mod+(ksm(10,a1)-1)%mod*8%mod*ksm(10,a1-1)%mod*niyuan%mod)%mod;
        else ans=(tmp1*tmp2%mod-(tmp2*ksm(10,a1-1)%mod+(ksm(10,a1)-1)%mod*8%mod*ksm(10,a1-1)%mod*niyuan%mod)%mod+mod)%mod;
        printf("%lld\n",ans);
    }
    return 0;
}

标签:10,ARC178B,10a1,a1,a2,tmp2,mod
From: https://blog.csdn.net/axibaxhf/article/details/143700381

相关文章