中文题面,注意st是不可以放到dp里面的,否则每次solve都要清零

注意状态的转移要st&&i==0,因为子结构也可能是st(当高位取0时)

而st是必然合法的

#include<bits/stdc++.h>
#define rep(i,j,k) for(register int i=j;i<=k;i++)
using namespace std;
const int maxn = 20;
typedef long long ll;
int a[maxn];
ll l,r,dp[maxn][15]; ll DP(int cur,int st,int pre,int limit){
if(cur==0) return 1;
if(!st&&!limit&&dp[cur][pre]!=-1)return dp[cur][pre];
int up=limit?a[cur]:9;
ll ans=0;
rep(i,0,up){
if(!st&&abs(pre-i)<2)continue;
ans+=DP(cur-1,st&&i==0,i,limit&&a[cur]==i);
}
return (limit||st)?ans:dp[cur][pre]=ans;
}
ll solve(ll num){
int cur=0;
while(num){
a[++cur]=num%10;
num/=10;
}
return DP(cur,1,1212,1);
}
int main(){
memset(dp,-1,sizeof dp);
while(~scanf("%lld%lld",&l,&r)){
printf("%lld\n",solve(r)-solve(l-1));
}
return 0;
}

最新文章

  1. 帮公司人事MM做了个工资条拆分工具
  2. OpenGL渲染流程
  3. PHP程序员7小时学会Kotlin系列 - 第一小时 背景
  4. android MVP模式介绍与实战
  5. TeeChart曲线平滑 Line.Smoothed
  6. java.lang.UnsupportedClassVersionError: org/sonatype/nexus/bootstrap/jsw/JswLauncher : Unsupported major.minor version 51.0
  7. fatal error: openssl/sha.h: No such file or directory 解决方案
  8. Toast提示信息
  9. 文件大小转换成可显示的Mb,Gb和kb方法
  10. Python 函数和模块
  11. Windows Azure Web Role 的 IIS 重置
  12. stm32之CAN发送、接收详解
  13. 用jQuery实现鼠标在table上移动进行样式变化
  14. HDU2844_Coins【多重背包】【二进制优化】
  15. Django中的ORM
  16. doubango(1)--从协议栈结构说起
  17. 第二章 基本图像处理(Image Processing)
  18. XP环境下的网络证书问题
  19. cf438E. The Child and Binary Tree(生成函数 多项式开根 多项式求逆)
  20. C#压缩图片时保留原始的Exif信息

热门文章

  1. 虚拟机Ubuntu16.04安装lrzsz
  2. Docker学习之路(三)Docker网络详解
  3. 23.NULL 函数
  4. python之yield函数
  5. 第十一课,ROS与传感器
  6. canvas时钟demo
  7. orcad找不到dll
  8. document.domain 跨域问题
  9. [转]windows7远程桌面连接失败:发生身份验证错误。要求的函数不受支持
  10. Sublime for MacOS 使用技巧