hdu3652 b-number模板
Posted pandaking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu3652 b-number模板相关的知识,希望对你有一定的参考价值。
hdu3652 b-number 模板
1 #include<bits/stdc++.h> 2 using namespace std; 3 int dp[15][15][3]; 4 int bit[15]; 5 int n; 6 7 int dfs(int pos,int mod,int have,int lim) 8 { 9 if(pos<=0) return mod==0&&have==2; 10 if(lim==0&&dp[pos][mod][have]!=-1) return dp[pos][mod][have]; 11 int num=lim?bit[pos]:9; 12 int ans=0; 13 for(int i=0;i<=num;i++){ 14 int mod_x=(mod*10+i)%13; 15 int have_x=have; 16 if(have==0&&i==1) have_x=1; 17 if(have==1&&i!=1) have_x=0; 18 if(have==1&&i==3) have_x=2; 19 ans+=dfs(pos-1,mod_x,have_x,lim&&i==num); 20 } 21 if(!lim) dp[pos][mod][have]=ans; 22 return ans; 23 } 24 25 int main(){ 26 while(scanf("%d",&n)!=EOF){ 27 memset(dp,-1,sizeof(dp)); 28 int len=0; 29 while(n>0){ 30 bit[++len]=n%10; 31 n=n/10; 32 } 33 printf("%d ",dfs(len,0,0,1)); 34 } 35 return 0; 36 }
以上是关于hdu3652 b-number模板的主要内容,如果未能解决你的问题,请参考以下文章