M - windy数
windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,
在A和B之间,包括A和B,总共有多少个windy数?
Input
包含两个整数,A B。
Output
一个整数
Sample Input
【输入样例一】 1 10 【输入样例二】 25 50
Sample Output
【输出样例一】 9 【输出样例二】 20
题目大概:
找出两个数字之间,不含前导零且相邻两个数字只差至少为2的整数的个数。
思路:
基础数位dp 加上前导零,多加一个状态;
代码:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
int a[30];
int dp[30][20];int sove(int pos,int qian,int limit,int ll)
{if(pos==-1)return !ll;if(!limit&&dp[pos][qian]!=-1&&!ll)return dp[pos][qian];int sum=0;int end=limit?a[pos]:9;for(int i=0;i<=end;i++){ int gg=fabs(qian-i);if(ll)sum+=sove(pos-1,i,limit&&(i==a[pos]),ll&&i==0);else if(gg>=2)sum+=sove(pos-1,i,limit&&(i==a[pos]),ll);}if(!limit&&!ll)dp[pos][qian]=sum;return sum;
}int go(int x)
{int pos=0;while(x){a[pos++]=x%10;x/=10;}return sove(pos-1,0,1,1);
}
int main()
{int m,n;memset(dp,-1,sizeof(dp));scanf("%d%d",&m,&n);printf("%d\n",go(n)-go(m-1));return 0;
}
M - windy数相关推荐
- bzoj-1026 windy数
题意: 定义一种windy数.这个数在十进制下相邻两个数字之差至少为2的正整数: 求区间[A,B]的这样的数的个数: n<=10^9: 题解: 数位乱搞. 首先求区间[A.B]等价于求[1,A- ...
- bzoj 1026 windy数
题目大意: 定义一种windy数:不含前导零且相邻两个数字之差至少为2的正整数被称为windy数 求在A和B之间,包括A和B,总共有多少个windy数 思路: 一眼数位dp 具体见注释 1 #incl ...
- luoguP2657 [SCOI2009]windy数
和诸位巨佬不同,蒟蒻如我,只能想到怎么统计不满足windy数条件的数 就是个爆搜 定义c[i][j][k]表示第i位且前一位为j,k表示是否满足条件 1 #include<bits/stdc++ ...
- bzoj 1026: [SCOI2009]windy数 数位DP算法笔记
数位DP入门题之一 也是我所做的第一道数位DP题目 (其实很久以前就遇到过 感觉实现太难没写) 数位DP题目貌似多半是问从L到R内有多少个数满足某些限制条件 只要出题人不刻意去卡多一个$log$什么的 ...
- uestc 250 windy数(数位dp)
题意:不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 思路:数位dp #include<iostream ...
- 【bzoj1026】[SCOI2009]windy数 数位dp
题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 输入 包含两个整数 ...
- BZOJ1026 [SCOI2009]windy数 数位dp
欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1026 题目概括 求区间[A,B]中有多少数满足下面的条件. 条件:该数相邻两位之差不小于2. 题解 ...
- 1026: [SCOI2009]windy数 (按位DP)
定义windy数:相邻数字的差至少是2的数,例如10不是windy数,而13是windy数.求给定区间中有多少windy数.区间端点范围为 [1, 2000000000] dfs写法 #include ...
- BZOJ 1026 [SCOI2009]windy数
1026: [SCOI2009]windy数 Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间 ...
- [BZOJ1026] [SCOI2009] windy数 (数位dp)
Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? In ...
最新文章
- java 约瑟夫问题 链表_【链表问题】环形单链表约瑟夫问题
- 字符转char android,android – 如何在kotlin语言中将char转换为ascii值
- 操作系统原理:进程与线程、进程生命周期、线程的类型
- 文件上传案例的服务器端
- 如何设计一个高可用、高并发秒杀系统
- Delphi使用Indy、ICS组件读取网页
- 3.1 scrapy框架 -- 安装与基本使用
- Atitit db access req数据库访问规范jdo jdbc jpa pdo sql 目录 1. 常见特性	1 1.1. 元数据 API	1 1.2. 分布式事务 vs事务中使用 Sav
- 音视频即时通讯开发功能介绍
- 计算机的优势和劣势_计算机专业毕业生考研还是就业应该怎么选?
- Sticky footer布局
- 滕振宇谈如何进行单元测试
- 20万华人的迪拜:亚洲的另一大Web3之都
- Android的Schema
- Python自动生成代码 - 通过tkinter图形化操作生成代码框架
- CSS中cellpadding和cellspacing的代替方法
- Cisco(37)——BGP的十三条选路原则演示
- 2t3ik、ddgs与Linux异常文件下载处理
- 私有专辑 java,这是什么“专辑歌手”标签iTunes使用?任何方式使用java设置?
- 【初篇】DHT11连接STM32、One wire单总线原理、GPIO代码详解