1 条题解

  • 0
    @ 2026-4-17 22:12:45

    超级大分讨。

    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    const int P=998244353,inv2=499122177;
    int qpow(int b){int ans=1,a=10;for(;b;b>>=1,a=a*a%P)if(b&1)ans=ans*a%P;return ans;}
    int mod(int x){return (x%P+P)%P;}
    int get1(int x){return mod(qpow(x)-1);}
    void solve()
    {
    	int a,b,c;cin>>a>>b>>c;if(a>b)swap(a,b);
    	if(a==b&&b==c)
    	{
    		int t=mod(qpow(c)-qpow(c-1)*2);
    		cout<<mod(t*(t+1)%P*inv2)<<'\n';
    	}
    	else if(b==c)
    	{
    		int t=mod(qpow(c)-qpow(c-1));
    		int l=mod(t-qpow(a)+1),r=mod(t-qpow(a-1));
    		cout<<mod((l+r)*(r-l+1)%P*inv2%P)<<'\n';
    	}
    	else if(a==b&&b+1==c)
    	{
    		int t=mod(qpow(a)-qpow(a-1)*2),t1=mod(qpow(a)-qpow(a-1));
    		cout<<mod(t*get1(a)%P*inv2%P+t1*qpow(a-1))<<'\n';
    	}
    	else if(b+1==c)
    	{
    		int t=mod(qpow(a)-qpow(a-1));
    		cout<<mod((get1(a)+qpow(a-1))%P*t%P*inv2)<<'\n';
    	}
    	else
    	{
    		cout<<0<<'\n';
    	}
    }
    signed main()
    {
    	int t;cin>>t;
    	while(t--)solve();
    	return 0;
    }
    • 1

    信息

    ID
    1260
    时间
    2000ms
    内存
    1024MiB
    难度
    10
    标签
    递交数
    9
    已通过
    2
    上传者