Windy数(数位dp)
来源:互联网 发布:2017网络暴力的新闻 编辑:程序博客网 时间:2024/06/01 19:55
Description
我定义了一种NO数。
不含前导零且相邻两个数位之差至少为2的正整数被称为NO数。
我想知道,在l和r之间,包括A和B,总共有多少个NO数?
特别的,1~9都是NO数
Format
Input
两个整数,l r(1<=l<=r<=2000000000)。
Output
一个整数,NO数的个数
Sample 1
Input
1 15
Output
12
Limitation
每个测试点1S,空间65536KB
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=20;int digit[maxn];ll dp[maxn][10];ll dfs(int pos,int pre,bool limit,bool zero){if(pos==0)return 1;if(dp[pos][pre]!=-1&&!limit&&!zero)return dp[pos][pre];ll ans=0;int up=limit?digit[pos]:9;for(int i=0;i<=up;i++)if( ( !zero&&abs(pre-i)>=2 ) ||zero)ans+=dfs(pos-1,i,limit&&i==up,zero&&i==0);if(!limit&&!zero)dp[pos][pre]=ans;return ans;}ll solve(ll x){int pos=1;while(x){digit[pos++]=x%10;x/=10;}return dfs(pos-1,0,1,1);}int main(){memset(dp,-1,sizeof(dp));ll l,r;while(scanf("%lld%lld",&l,&r)==2){printf("%lld\n",solve(r)-solve(l-1));}return 0;}
阅读全文
0 0
- windy数(数位DP)
- windy数(数位dp)
- Windy数(数位dp)
- Windy数(数位dp)
- 数位DP --Windy数
- 数位DP Windy数
- 数位dp windy数
- windy数 【数位DP】
- 【数位Dp】windy数
- BZOJ1026 [SCOI2009]windy数(数位dp)
- BZOJ 1026 windy数 (数位DP)
- UESTC 250 windy数(数位DP)
- UESTC 250 windy数 (数位DP)
- [BZOJ1026][SCOI2009]windy数(数位dp)
- HYSBZ - 1026 windy数 (数位DP)
- BZOJ-1026-windy数(数位DP)
- uestc1307 windy数 (数位DP)
- UESTC250:windy数(数位dp)
- java多线程都有几种方式实现
- ROS回顾学习3----vim编辑器和launch文件
- Java三大器(过滤器,拦截器,监听器)之监听器-demo1:统计在线用户数
- Android多线程断点续传原理解析
- 打印100-200之间的素数
- Windy数(数位dp)
- Java代码块
- 转载自http://www.cnblogs.com/pinard/p/5970503.html---梯度下降讲解
- POJ 2033|SPOJ ACODE|Alphacode|动态规划
- 页面缩放兼容性处理(zoom,Firefox火狐浏览器)
- C语言基础知识
- python错误Errors与异常Exceptions
- 665. Non-decreasing Array
- C语言第二课