BZOJ 5064: B-number
生活随笔
收集整理的這篇文章主要介紹了
BZOJ 5064: B-number
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
數(shù)位DP
#include<cstdio> #include<cstring> using namespace std; int A[16]; long long F[16][13][10][2]; long long dfs(int t,int Y,int Last,int lim13,int lim){if (!lim && F[t][Y][Last][lim13]!=-1) return F[t][Y][Last][lim13];if (t==0){if (!Y && lim13) return 1;return 0;}int Lim=9;if (lim) Lim=A[t];long long ANS=0;for (int up=0; up<=Lim; up++) ANS+=dfs(t-1,(Y*10+up)%13,up,lim13|(Last==1 && up==3),lim&(up==Lim));if (!lim) F[t][Y][Last][lim13]=ANS;return ANS; } long long solve(long long x){int Len=0;while (x){A[++Len]=x%10;x/=10;}return dfs(Len,0,0,0,1); } int main(){long long n;scanf("%lld",&n);memset(F,-1,sizeof(F));printf("%lld\n",solve(n));return 0; }
轉(zhuǎn)載于:https://www.cnblogs.com/silenty/p/9845933.html
總結(jié)
以上是生活随笔為你收集整理的BZOJ 5064: B-number的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js前端导出excel:json形式的导
- 下一篇: iOS使用 xcconfig配置文件的若