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 。

Source

数位dp模板题

代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cstdlib>
 5 #define int long long
 6 using namespace std;
 7 int l,r,a[21],dp[21][1001];
 8 int dfs(int pos,int sta,bool lead,bool limit)
 9 {
10     if(pos==0) return 1;
11     if(!lead&&!limit&&dp[pos][sta]!=-1) return dp[pos][sta];
12     int up=limit?a[pos]:9;
13     int ans=0;
14     for(int i=0;i<=up;i++)
15     {
16         if(abs(i-sta)<2) continue;
17         ans+=dfs(pos-1,(i==0&&lead)?1000:i,(i==0&&lead),(limit&&i==up));
18     }
19     if(!limit&&!lead) dp[pos][sta]=ans;
20     return ans;
21 }
22 int solve(int x)
23 {
24     int cnt=0;
25     while(x!=0)
26     {
27         a[++cnt]=x%10;
28         x/=10;
29     }
30     memset(dp,-1,sizeof(dp));
31     return dfs(cnt,1000,1,1);
32 }
33 #undef int
34 int main()
35 {
36     #define int long long
37     cin>>l>>r;
38     cout<<solve(r)-solve(l-1);
39     return 0;
40 }

转载于:https://www.cnblogs.com/Slrslr/p/9712058.html

[BZOJ1026]windy数相关推荐

  1. bzoj-1026 windy数

    题意: 定义一种windy数.这个数在十进制下相邻两个数字之差至少为2的正整数: 求区间[A,B]的这样的数的个数: n<=10^9: 题解: 数位乱搞. 首先求区间[A.B]等价于求[1,A- ...

  2. bzoj1026 Windy数

    传送门 数位DP模板.注意 s o l v e solve solve函数中, p o s pos pos要置为 0 0 0.这种写法要把 m e m s e t memset memset写在函数里 ...

  3. BZOJ1026 [SCOI2009]windy数 数位dp

    欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1026 题目概括 求区间[A,B]中有多少数满足下面的条件. 条件:该数相邻两位之差不小于2. 题解 ...

  4. BZOJ1026[SCOI2009]windy数

    @(BZOJ)[数位DP] 题面 Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B ...

  5. 【bzoj1026】[SCOI2009]windy数 数位dp

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

  6. [BZOJ1026] [SCOI2009] windy数 (数位dp)

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

  7. windy数(BZOJ-1026)

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

  8. 【BZOJ1026】windy数,数位DP

    Time:2016.08.14 Author:xiaoyimi 转载注明出处谢谢 思路: 依旧蛋疼的数位DP f[i][j]表示有i位,且最高位为j的windy数个数 转移方程比较好写 关键是具体求值 ...

  9. [bzoj1026] [SCOI2009]windy数

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

最新文章

  1. 【亲测有效】如何安装屏幕录制工具ScreenPresso
  2. 把jquery的this写入选择器里(伪写入)哈哈~
  3. 带有en的单词有哪些_en为前缀的单词
  4. 如何选择就业方向(80后的个人经验,转载)
  5. spring 源码阅读入门
  6. cmake (2)指令说明
  7. ActionScript 3.0 优化
  8. SAP Spartacus Unit List Component的设计明细 - UnitListComponent
  9. 52 FI配置-财务会计-固定资产-折旧-定义终止值代码
  10. 三星android6.0推送,三星推送Android6.0 满屏小清新的风味!
  11. git 远程删除分支之后 本地分支更新后还在
  12. mybatis mysql xml配置_Mybatis-Spring连接mysql 8.0配置步骤出错的解决方法
  13. Go 关键字 Select
  14. 基于bim二次开发的智能楼宇管理系统
  15. Linux宝塔禁止国外ip访问服务器,屏蔽国外ip访问网站代码
  16. Mugeda(木疙瘩)H5案例课—足球小游戏-岑远科-专题视频课程
  17. win10初始化mysql出现失败怎么办_win10初始化电脑出现问题未进行任何更改怎么办...
  18. PS1545L-ASEMI低压降肖特基二极管PS1545L
  19. docker 传递 profile
  20. 2020.2.26 数学函数(吃苹果问题)

热门文章

  1. 综述 | Google团队发布,一文概览Transformer模型的17大高效变种
  2. 量子科技概念大火,国内现状如何?华为BAT均入局量子计算
  3. 经验 | 非科班出身怎么转行计算机?
  4. CVPR2020 | 遮挡也能识别?地平线提出用时序信息提升行人检测准确度
  5. 土是独体字结构吗_毛笔楷书基础练习独体字部首的写法(左部)4
  6. 学校邮箱注册IDEA、pycharm等全家桶(正式版就是香)
  7. DWA泊车算法的实现
  8. Log4j、Log4j 2、JUL、JCL 、SFL4J 、Logback 与 Lombok 的使用
  9. java 开发规范 下载_java后端开发规范 PDF 下载
  10. 信安精品课:2020年软考信息安全工程师备考公开课