UESTC 250 数位DP
来源:互联网 发布:mac os x 安装软件 编辑:程序博客网 时间:2024/06/10 01:12
点击打开链接
题意:中文
思路:加个flag标记一下是不是前导为0就可以了
#include <math.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;typedef long long ll;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const ll INF=0x3f3f3f3f3f3f3f3fll;const int maxn=5010;int dig[30];ll dp[20][10][2];ll dfs(int pos,int lim,int pre,int flag){ if(pos<0){ if(flag) return 0; else return 1; } if(!lim&&dp[pos][pre][flag]!=-1) return dp[pos][pre][flag]; int las=lim?dig[pos]:9; ll ret=0; for(int i=0;i<=las;i++){ if(flag==1){ if(i==0) ret+=dfs(pos-1,lim&&(i==las),0,1); else ret+=dfs(pos-1,lim&&(i==las),i,0); }else if(abs(i-pre)>=2) ret+=dfs(pos-1,lim&&(i==las),i,0); } if(!lim) dp[pos][pre][flag]=ret; return ret;}ll slove(ll n){ if(n==0) return 0; int len=0; while(n){ dig[len++]=n%10; n/=10; } return dfs(len-1,1,0,1);}int main(){ memset(dp,-1,sizeof(dp)); ll n,m; while(scanf("%lld%lld",&n,&m)!=-1){ printf("%lld\n",slove(m)-slove(n-1)); } return 0;}
0 0
- UESTC 250 数位DP
- UESTC-250-数位dp
- UESTC 250 windy数(数位DP)
- [数位dp] uestc 250 windy数
- uestc 250 数位dp(水)
- uestc 250 windy数 【数位dp】
- UESTC 250 windy数(数位DP)
- UESTC 250 windy数(数位DP)
- uestc 250 windy数 【数位dp】
- UESTC 250 windy数 (数位DP)
- UESTC 250 windy数 (数位DP)
- uestc 250 Windy数 数位dp
- uestc 250 windy数(数位dp)
- uestc 1307 数位DP
- UESTC windy数位dp
- 数位DP-UESTC
- uestc 250 (数位dp 记忆化搜索解法)
- UESTC 1307 windy数 数位DP
- FreeBook 基于 MVP 模式开发的带缓存网络爬虫,采用最流行框架搭建,干货多多
- Altium Designer Bottom Solder层的作用
- 微信公众号开发Apache+php如何搭建服务
- werewolf (桌游)
- facebook presto源码解读(part1)
- UESTC 250 数位DP
- oracle11g安装教程(注意事项及图文教程)
- caffe学习资料
- html+css源码之实现登录弹出框遮罩层效果
- Spring AOP proxy代理生成
- hdu 4609(快速傅里叶变换)
- (笔记)Spring实战_面向切面的Spring(2)_使用切点选择连接点
- hdu 5510 Bazinga 剪枝+find()/strstr()/KMP
- Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) -- B. Batch Sort(暴力枚举)