bzoj1026 [SCOI2009]windy数
2017-09-08 22:29
387 查看
题目
又是数位dp
只要套模板就好了。。。
值得说明的是,这是第一道需要记录前缀0的数位dp233。
又是数位dp
只要套模板就好了。。。
值得说明的是,这是第一道需要记录前缀0的数位dp233。
#include<bits/stdc++.h> using namespace std; int dp[15][10][2]; int digit[15]; int m,n; int len; int DFS(int pos,int pre,int limit,int flag) { if(pos==0)return 1; if(!limit&&dp[pos][pre][flag]!=-1)return dp[pos][pre][flag]; int up=limit?digit[pos]:9; int tmp=0; for(int i=0;i<=up;i++) { if(abs(pre-i)>=2||pos==len||flag)tmp+=DFS(pos-1,i,limit&&i==up,flag&&i==0); } if(!limit)dp[pos][pre][flag]=tmp; return tmp; } int solve(int x) { len=0; while(x)digit[++len]=x%10,x/=10; return DFS(len,0,1,1); } int main() { memset(dp,-1,sizeof(dp)); scanf("%d%d",&m,&n); printf("%d",solve(n)-solve(m-1)); return 0; }
相关文章推荐
- BZOJ1026: [SCOI2009]windy数(数位dp)
- BZOJ 1026: [SCOI2009]windy数
- [BZOJ1026][SCOI2009]windy数 解题报告|数位dp
- [BZOJ1026][SCOI2009]windy数
- 【BZOJ 1026】【SCOI 2009】windy数 【数位DP】
- [BZOJ]1026: [SCOI2009]windy数
- 【BZOJ】1026: [SCOI2009]windy数(数位dp)
- BZOJ 1026 [SCOI2009]windy数 (数位DP)
- BZOJ 1026 [SCOI2009]windy数 数位DP
- 【bzoj】1026: [SCOI2009]windy数
- BZOJ 1026: [SCOI2009]windy数 (裸的数位dp)
- 数位dp BZOJ 1026: [SCOI2009]windy数
- 【BZOJ】1026 [SCOI2009]windy数 数位dp
- BZOJ 1026: [SCOI2009]windy数 数位dp
- bzoj1026: [SCOI2009]windy数 [简单数位dp]
- BZOJ 1026 [SCOI2009]windy数 - 数位DP
- 【bzoj 1026】[SCOI2009]windy数(数位dp)
- 【数位DP】bzoj1026: [SCOI2009]windy数
- [省选前题目整理][BZOJ 1026][SCOI 2009]windy数(数位DP)
- bzoj 1026: [SCOI2009]windy数 & 数位DP算法笔记