UESTC-1307-windy数
windy定义了一种windy数。
不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。
windy想知道,在A和B之间,包含A和B,总共同拥有多少个windy数?
Input
包括两个整数。A B。
满足 1 <= A <= B <= 2000000000 。
Output
包括一个整数:闭区间[A,B]上windy数的个数。
Sample Input
1 10
Sample Output
9
状态分析比較简单。须要增加前导0的状态 如01 02 03
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <string>
#include <algorithm>
#include <queue>
using namespace std; typedef long long ll;
ll dp[20][10];
vector<int> digit; int a,b;
ll dfs(int pos,int statu,int done,int first){
if(pos==-1) return 1;
if(!done && ~dp[pos][statu]&&!first) return dp[pos][statu];
ll res = 0;
int end = done? digit[pos]:9;
if(first){
for(int i = 0; i <= end; i++)
res += dfs(pos-1,i,done&&i==end,i==0);
}
else{
for(int i = 0; i <= end; i++){
if(abs(i-statu)>=2)
res += dfs(pos-1,i,done&&i==end,0);
}
}
if(!done&&!first) dp[pos][statu] = res;
return res;
} ll solve(int num){
memset(dp,-1,sizeof dp);
digit.clear();
while(num){
digit.push_back(num%10);
num /= 10;
}
return dfs(digit.size()-1,0,1,1);
} int main(){
while(cin >> a >> b){
cout<<solve(b)-solve(a-1)<<endl;
}
return 0;
}
UESTC-1307-windy数的更多相关文章
- UESTC 1307 WINDY数 (数位DP,基础)
题意: windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数.windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 思路: 就是给连续的两 ...
- UESTC 1307 windy数(数位DP)
题目链接 这其实入门题,不过,我写了好一会,还是一直wa,图样... #include <iostream> #include <cstdio> #include <cs ...
- uestc 250 windy数(数位dp)
题意:不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 思路:数位dp #include<iostream ...
- UESTC 250 windy数(数位DP)
题意:题意:求区间[A,B]之间的,不含前导0,且相邻两数位之间相差至少为2的正整数有多少个. 分析:dp[i][j]表示,长度为i.以j为结尾的表示的个数,再加一个前导0判断即可 #include ...
- BZOJ1026: [SCOI2009]windy数[数位DP]
1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 6346 Solved: 2831[Submit][Sta ...
- BZOJ1026: [SCOI2009]windy数
传送门 md直接wa了78次,身败名裂 没学过数位DP硬搞了一道数位DP的模板题,感觉非常的愉(sha)悦(cha). 二分转化枚举思想.首先DP预处理出来$f[i][j]$表示有$i$位且第$i$位 ...
- BZOJ 1026 【SCOI2009】 windy数
Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B,总共有多少个windy数? I ...
- 【BZOJ-1026】windy数 数位DP
1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5230 Solved: 2353[Submit][Sta ...
- [bzoj 1026]windy数(数位DP)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1026 分析: 简单的数位DP啦 f[i][j]表示数字有i位,最高位的数值为j的windy数总 ...
- bzoj 1026 [SCOI2009]windy数 数位dp
1026: [SCOI2009]windy数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline ...
随机推荐
- VIM选项配置说明
选项配置说明 选项书写格式 选项说明 :se[t] 显示所有被改动的选项 :se[t] all 显示所有非 termcap 选项 :se[t] termcap 显示所有 termcap 选项 :se[ ...
- PHP+MySQL中字符集问题分析
Character set顾名思义,就是字符.以及字符对应的编码的集合.例如简体中文字符集gb2312就包括简体中文中的所有规定汉字,以及每个汉字对应的代码. Collation,是指比较字符的规则的 ...
- hdu 3681 压缩dp+搜索
题意:一个机器人想越狱,他只能带一定电量的电池,'S'表示道路可行,'G'表示充电器, 只可充电一次,但是可以经过很多次.'F'表示起点,'Y'表示要破坏的机关,也是只能破坏一次,但是可以经过无数次. ...
- Spring 注解大全与详解
Spring使用的注解大全和解释 注解 解释 @Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类 ...
- CSS的flex布局(转载)
我们之前已经学过一些布局模型,比如说浮动,绝对定位等等,但是这些布局方式一是不够简洁,而是使用的范围确实是太窄了. flex模型拥有比较多的属性,来设置多样的布局方式,接下来我们就详细介绍各种属性对布 ...
- poj 3468 A Simple Problem with Integers 线段树区间加,区间查询和
A Simple Problem with Integers Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://poj.org/problem?i ...
- Scala入门:从HelloWorld开始【源码及编译】
最近在学习Scala语言,虽然还没有完全学通, 但是隐约可以体会到Scala的简洁和强大. 它既能让程序员使用函数式编程, 也提供了全面的面向对象编程. 在刚刚开始读<Scala编程>的时 ...
- VS 2017 取消结构参考线的显示
Visual studio 中的结构参考线如下所示 其可以通过如下方式取消:
- 数据库中MCO
约束条件指该字段取值的约束条件,“ M ”表示必填.“ C ”表示条件必填.“ O ”表示可填,以下含义同
- MyEclipse for Linux版下载
最近看到很多网友都在找MyEclipse for Linux版下载,费了很大劲也没有找到.1.建议通过代理到官方网站下载. 2.用迅雷下载.设置迅雷使用代理下载(我用的就是这种方式). MyEclip ...