Acwing 1083. Windy数

题意:

Windy 定义了一种 Windy 数:不含前导零且相邻两个数字之差至少为 2 的正整数被称为 Windy 数。

Windy 想知道,在 A 和 B 之间,包括 A 和 B,总共有多少个 Windy 数?

题解:

和这个题没啥区别Acwing 1082. 数字游戏题解连接

代码:

#include<bits/stdc++.h>
#define debug(a,b) printf("%s = %d\n",a,b);
typedef long long ll;
using namespace std;inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);return s*w;
}
const int maxn=15;
int f[maxn][maxn];
void init(){//这里求的是包含前导0的情况 for(int i=0;i<=9;i++)f[1][i]=1;for(int i=2;i<maxn;i++){for(int j=0;j<=9;j++){for(int k=0;k<=9;k++){if(abs(k-j)>=2){f[i][j]+=f[i-1][k];}}}}
}
int solve(int n){if(!n)return 0;vector<int>vec;while(n)vec.push_back(n%10),n/=10;int tot=0;int last=-1;//n位数的答案for(int i=vec.size()-1;i>=0;i--){int x=vec[i];for(int j=(i==vec.size()-1);j<x;j++){if(abs(j-last)>=2){tot+=f[i+1][j];}}if(abs(x-last)<2)break;last=x;if(!i)tot++;}//低于n位数 for(int i=1;i<=vec.size()-1;i++)for(int j=1;j<=9;j++)tot+=f[i][j];return tot;
}
int main()
{int l,r;init();cin>>l>>r;cout<<solve(r)-solve(l-1);return 0;
}

Acwing 1083. Windy数相关推荐

  1. AcWing 1083 Windy数

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

  2. 1083 Windy数(数位dp)

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

  3. 1083. Windy数

    题目 题意: 求给定区间内的不含前导零且相邻两个数字之差至少为 2 的正整数. 思路: 数位dp.这里注意一点是有前导零的情况,即只有个位数前边是0的情况,这个是可以无脑放的. 时间复杂度: O(能过 ...

  4. windy数(数位dp)

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

  5. bzoj-1026 windy数

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

  6. bzoj 1026 windy数

    题目大意: 定义一种windy数:不含前导零且相邻两个数字之差至少为2的正整数被称为windy数 求在A和B之间,包括A和B,总共有多少个windy数 思路: 一眼数位dp 具体见注释 1 #incl ...

  7. luoguP2657 [SCOI2009]windy数

    和诸位巨佬不同,蒟蒻如我,只能想到怎么统计不满足windy数条件的数 就是个爆搜 定义c[i][j][k]表示第i位且前一位为j,k表示是否满足条件 1 #include<bits/stdc++ ...

  8. bzoj 1026: [SCOI2009]windy数 数位DP算法笔记

    数位DP入门题之一 也是我所做的第一道数位DP题目 (其实很久以前就遇到过 感觉实现太难没写) 数位DP题目貌似多半是问从L到R内有多少个数满足某些限制条件 只要出题人不刻意去卡多一个$log$什么的 ...

  9. uestc 250 windy数(数位dp)

    题意:不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 思路:数位dp #include<iostream ...

最新文章

  1. 华为用MySQL还是oracle_25.Oracle和Mysql的区别
  2. 【Android开发】XML文件解析
  3. h5是什么 www.php.cn,html meta标签的作用是什么?
  4. 1003 我要通过
  5. 163邮箱:退信代码(对照表) - 说明篇
  6. 传记 | 我的大学三年-不以物喜,不以己悲
  7. Java Web学习总结(26)——Servlet不同版本之间的区别
  8. dell服务器系统备份到另一台,已解决: Re: Networker 备份服务器 备份软件配置文件备份? - Dell Community...
  9. CentOS 下 Oracle 10g 安装 + 配置 全过程(图解)
  10. RabbitMQ的Android端接收
  11. WIN10系统安装visio2016失败后修改系统设置,安全
  12. Mac 阻止搜狗输入法偷偷更新
  13. 国产操作系统之中兴新支点NewStartOS安装
  14. Vue简易图片手风琴组件,包含宽度适应(JS操作CSS实现)
  15. LeanCloud带图形校验码的短信发送Vue组件开发
  16. 芯片附近为什么都放 0.1uF 电容 ?
  17. 精彩揭秘,一个高大上的机器人自动化工厂需要哪些标配?
  18. WordPress树叶飘落特效插件1.2
  19. Android面试:整理了Android面试官最常问的174道面试题,让你秒变offer收割机
  20. python输入一个数输出绝对值_python如何使用绝对值

热门文章

  1. 今日份凡尔赛培训满分了没?
  2. 听说,99%的数学家都算不出这道题
  3. 揭秘神仙高校的课堂!网友跪了:这就是差距啊!
  4. 2018年最值得关注的15大技术趋势,区块链将得到更广泛的应用
  5. 粉丝回馈 | 用30天换来了这辈子独一无二的纪念
  6. java aspose重叠_Aspose.Words - 在特定位置合并两个文档
  7. 多个数求平均数java_[分享]求任意个数的平均数!
  8. linux下mysql案例_Linux下安装MySQL多实例
  9. ie插件获取dom_读书笔记《DOM编程艺术》DOM
  10. linux 全双工 wifi热点,Linux中的同时套接字读/写(“全双工”)(特别是aio)