1 条题解
-
0
超级大分讨。
#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
- 上传者