HDU 6093 Rikka with Number
来源:互联网 发布:php论坛 编辑:程序博客网 时间:2024/06/05 15:44
#include<bits/stdc++.h>using namespace std;const int MAXN=5050;const long long mod=998244353;char ch[MAXN];double L[MAXN];int I[MAXN],A[MAXN],B[MAXN],C[MAXN],pd[MAXN];int x[MAXN],y[MAXN],lenx,leny;int len,le; void change(int len,int m){int x,pre,i;le=0;memcpy(B,A,sizeof(A));while(len){x=0;for(i=len;i;i--){pre=x;x=(x*10+B[i])%m;B[i]=(pre*10+B[i])/m;}C[++le]=x;while(len&&B[len]==0)len--;}}int calc(int m){change(len,m);if(le>m)return (I[m]-I[m-1]+mod)%mod;if(le<m)return 0;int i,j,ans;for(i=0;i<m;i++)pd[i]=0;ans=0;for(i=1;i<C[le];i++)ans=(ans+I[le-1])%mod;pd[C[le]]=1;for(i=le-1;i>0;i--){for(j=0;j<C[i];j++){if(pd[j]==0)ans=(ans+I[i-1])%mod;}if(pd[C[i]])break;pd[C[i]]=1;if(i==1)ans=(ans+1)%mod;} return ans;}int calc(){if(len==0)return 0;int ans,where,i;ans=0;where=2;while(L[where]<=len-1)where++;if(where<=15){for(i=2;i<=15;i++)ans=(ans+calc(i))%mod;return ans;}for(i=2;i<=where-2;i++)ans=((ans+I[i]-I[i-1])%mod+mod)%mod;ans=(ans+calc(where-1)+calc(where))%mod;return ans;}int main(){int i,T,lenx,ans;len=1;while(L[len]<MAXN){len++;L[len]=log(len)/log(10)*(len-1);}I[0]=1;for(i=1;i<MAXN;i++)I[i]=I[i-1]*1ll*i%mod;scanf("%d",&T);while(T--){scanf("%s",ch+1);len=strlen(ch+1);for(i=1;i<=len;i++)A[i]=ch[len-i+1]-'0';lenx=len;for(i=1;i<=len;i++)x[i]=A[i];A[1]--;for(i=1;i<=len;i++){if(A[i]<0){A[i+1]--;A[i]+=10;}}while(len&&A[len]==0)len--;ans=calc();scanf("%s",ch+1);len=strlen(ch+1);for(i=1;i<=len;i++)A[i]=ch[len-i+1]-'0';leny=len;for(i=1;i<=len;i++)y[i]=A[i];ans=(calc()-ans+mod)%mod;printf("%d\n",ans);}}
阅读全文
0 0
- [HDU 6093] Rikka with Number
- HDU 6093 Rikka with Number
- HDU 6093 Rikka with Number(java大数+思维)
- HDU 6093 Rikka with Number (2017 Multi-University Training Contest
- HDU-6093 Rikka with Number(计数/数位dp)
- HDU 6093 Rikka with Number(康托展开)
- HDU 6093 Rikka with Number (2017 Multi-Univ Training Contest 5)
- Rikka with Tree HDU
- Rikka with Graph HDU
- Rikka with Subset HDU
- Rikka with Subset HDU
- Rikka with Candies HDU
- Rikka with String HDU
- Rikka with Subset HDU
- hdu 5202 Rikka with string
- HDU 5202 Rikka with string
- HDU 5202 Rikka with string
- HDU 5204 Rikka with sequence
- Android贝塞尔曲线的使用
- MATLAB大中小括号()[]{}的区别
- js 停留几秒后页面再跳转
- PHP的引入require和include的区别
- 数据结构实验之图论四:迷宫探索(邻接表与DFS)
- HDU 6093 Rikka with Number
- JavaScript 疲劳终极指南:我们行业的真相
- 【真题】京东2017校招编程题 幸运数
- C++ 文件夹下文件监控
- 6. Zookeeper精要-内部工作原理
- ButterKnife 8.8.1版本在AndroidStudio中的配置
- 2017-8-10
- 【Python 密度聚类】Python实现DBScan
- 有关人工智能、机器学习和深度学习三者的简单关系