FZU 2109 Mountain Number ---数位dp
2014-02-20 13:36
507 查看
http://www.cnblogs.com/woaishizhan/archive/2013/05/10/3070391.html
#include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> using namespace std; #define inf 0x3f3f3f3f int bit[20],dp[20][20][2]; int dfs(int pos,int pre,int p,int first,int flag) { if(pos==-1) return 1; if(!flag&&dp[pos][pre][p]!=-1) return dp[pos][pre][p]; int sum=0; int end=flag?bit[pos]:9; for(int i=0;i<=end;i++) { if(first&&!i) sum+=dfs(pos-1,9,0,1,0); else if(p&&i>=pre) sum+=dfs(pos-1,i,0,0,flag&&(i==end)); else if(!p&&i<=pre) sum+=dfs(pos-1,i,1,0,flag&&(i==end)); } if(!flag) dp[pos][pre][p]=sum; return sum; } int calc(int x) { int i,j,len=0; while(x) { bit[len++]=x%10; x/=10; } return dfs(len-1,9,0,1,1); } int main() { int t; cin>>t; memset(dp,-1,sizeof(dp)); while(t--) { int i,j,k; int a,b; cin>>a>>b; printf("%d\n",calc(b)-calc(a-1)); } }
相关文章推荐
- fzu 2109 Mountain Number 数位DP 记忆化搜索
- FZU - 2109 Mountain Number
- fzu 2109 Mountain Number
- FZU 2109 Mountain Number [数位DP]【动态规划】
- 链接前导fzu 2109 Mountain Number
- FZU-2109 Mountain Number(数位dp)
- fzu 2109 Mountain Number 数位DP
- FZU 2109 Mountain Number (数位DP)
- FZU 2109 Mountain Number_数位DP
- fzu 2109 Mountain Number 数位DP 递推
- FZU - 2109 Mountain Number 数位DP
- fzu2109--Mountain Number(数位dp)
- fzu 2109(数位dp)
- FZU 2019 Mountain Number
- foj 2109 Mountain Number 位数dp
- FZU 1078 计算循环冗余码
- 牧场物语 FZU - 2234 (双线DP)
- FZU - 2283(暴力)
- FZU 2236(离散化+树状数组)
- POJ-2109 Power of Cryptography