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 ...
随机推荐
- 初涉springboot(一)
概述 1.了解springboot的作用 2.构建第一个springboot项目 一.springboot的作用 ① 原先在构建SSM项目的时候,可以感觉到,在一些不是很大的项目,构建配置文件的过程所 ...
- Java字符串池
1. String类的两个构造方法 private final char value[]; private int hash; public String() { this.value = " ...
- python开发_python日期操作
在python中对日期进行操作的库有: import datetime import time 对日期格式化信息,可以参考官方API: time.strftime datetime 下面是我做的dem ...
- Educational Codeforces Round 10 A. Gabriel and Caterpillar 模拟
A. Gabriel and Caterpillar 题目连接: http://www.codeforces.com/contest/652/problem/A Description The 9-t ...
- js判断移动设备
在开发中可能需要去判断用户的设备重定向到相应的网址: 1. 判断 iPhone Android iPod if((navigator.userAgent.match(/iPhone/i))||(n ...
- Android TextView 显示HTML加图片
TextView显示网络图片,我用android2.3的系统,可以显示图片出来,并且如果图片比较大,应用会卡的现象,肯定是因为使用主线程去获取网络图片造成的,但如果我用android4.0以上的系统运 ...
- High-current supply uses standard three-terminal regulator
Voltage-regulator design for high output currents can be a critical and difficult task. Although vol ...
- (转)媒体格式分析之flv -- 基于FFMPEG
本来是应该先写一个媒体文件格式的简单讲解的,还没来得及写,以后再写.今天就先根据ffmpeg的flv.c的flv_demux这个结构体来讲解一下当前比较流行的媒体格式flv. FLV 是FLASH V ...
- 关于hessian接口类方法顺序及对象序列化的实战研究
前段时间,提供出去的hessian接口被调用时,调用方出现序列化异常以及其他莫名的异常.同事说hessian接口使用有2个注意事项: 1.对于已经存在的hessian接口,后续增加的方法只能加在文件末 ...
- TCP通信粘包问题分析和解决(全)(转)
TCP通信粘包问题分析和解决(全) 在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的.因此TCP的socket编程,收发两端(客户端和服务器端)都要有成对的socket,因此,发送 ...