Description

windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数?

Input

包含两个整数,A B。

Output

一个整数。

Sample Input

【输入样例一】
1 10
【输入样例二】
25 50

Sample Output

【输出样例一】
9
【输出样例二】
20

HINT

【数据规模和约定】

100%的数据,满足 1 <= A <= B <= 2000000000 。

 
数位dp裸题:f[i][j][k]表示考虑至第i位,填j,且属于k状态的方案数。k = 0为危险状态,k = 1为安全状态。
设A的位数为p1,B的为p2。先dp位数为p1的满足条件数有几个,再dp位数<p1且满足条件的数有几个(全是安全态)。两者相加即为<=A的满足条件的数有几个了。
ans = ans(B) - ans(A-1);
具体见代码(可能略丑,仅供参考):
 #include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<cstdlib>
using namespace std; #define maxn 15
int A,B,sum,f[maxn][][];
int num[maxn]; inline int len(int lim)
{
int ret = ,pos = ,t = lim;
while (lim) { ++ret; lim/=; }
memset(num,,sizeof(num));
while (t) { ++pos; num[ret - pos + ] = t%; t /= ; }
return ret;
} inline int dp(int lim)
{
if (lim == ) return ;
int ret = ,n = len(lim),i,j,k;
memset(f,,sizeof(f));
for (i = ;i < num[];++i) f[][i][] = ;
f[][num[]][] = ;
for (i = ;i < n;++i)
for (j = ;j < ;++j)
{
if (f[i][j][])
for (k = ;k < ;++k)
{
if (abs(k-j) < ) continue;
f[i+][k][] += f[i][j][];
}
if (!f[i][j][]) continue;
for (k = ;k <= num[i+];++k)
{
if (abs(k-j) < ) continue;
if (k == num[i+])
f[i+][k][] += f[i][j][];
else f[i+][k][] += f[i][j][];
}
}
for (i = ;i < ;++i) for (j = ;j < ;++j) ret += f[n][i][j];
memset(f,,sizeof(f));
for (i = ;i < ;++i) f[][i][] = ;
for (i = ;i < n-;++i)
for (j = ;j < ;++j)
{
if (!f[i][j][]) continue;
for (k = ;k < ;++k)
{
if (abs(j - k) < ) continue;
f[i+][k][] += f[i][j][];
}
}
for (i = ;i < n;++i) for (j = ;j < ;++j) ret += f[i][j][];
return ret;
} int main()
{
freopen("1026.in","r",stdin);
freopen("1026.out","w",stdout);
scanf("%d %d",&A,&B);
sum = dp(B);
sum -= dp(A-);
printf("%d",sum);
fclose(stdin); fclose(stdout);
return ;
}

最新文章

  1. Entity Framework Code First 中使用 Fluent API 笔记。
  2. 简单三个表之间关联 与 case when语句的应用
  3. MongoDB学习笔记—02 MongoDB入门
  4. 【POJ 2187】Beauty Contest 凸包+旋转卡壳
  5. 线条围绕 div 中心转圈 效果
  6. hello-weapp 微信小程序最简示例教程
  7. ZOJ 1455 Schedule Problem(差分约束系统)
  8. C# 索引器 学习
  9. Django:(博客系统)使用使用mysql数据-&gt;后台管理tag/post/category的配置
  10. ssh 连接不上报Connection closed by remote host
  11. ERP口碑订单无法落桌的解决方法
  12. 八、.net core 通过数据库配置文件连接操作数据库
  13. [已解决]An unhandled exception occurred while processing the request.
  14. codeforces587a//Duff and Weight Lifting// Codeforces Round #326 (Div. 1)
  15. Jsp&amp;Servlet入门级项目全程实录第2讲
  16. 树莓派3B+学习笔记:7、挂载exfat格式U盘
  17. lable标签的妙用
  18. HDU 5952 [DFS]
  19. python发送邮件实例1
  20. 《深入理解Android2》读书笔记(二)

热门文章

  1. Linux安装程序Anaconda分析
  2. NDK开发之日志打印
  3. Mysql解压版的安装
  4. window和Linux下的软链接
  5. 第一篇:Mysql操作初级
  6. JQM 页面滚动加载
  7. ACCESS表与CSV文件相互导入、导出的SQL语句
  8. DOM操作--表格点击行变色
  9. jQuery实现多级手风琴树形下拉菜单(源码)
  10. Reporting Services 2: 参数化报表