hdu 2089 记忆化搜索写法(数位dp)
2024-09-01 00:21:27
/*
记忆化搜索,第二维判断是否是6
*/
#include<stdio.h>
#include<string.h>
#define N 9
int dp[N][2],digit[N];
int dfs(int len,int cnt,int ok) {//cnt代表是否是6,ok代表前一个是当前为最大值,并且当前也是最大值
if(!len)return 1;
if(!ok&&dp[len][cnt]!=-1)return dp[len][cnt];
int i,ans=0,maxx=ok?digit[len]:9;
for(i=0;i<=maxx;i++) {
if(i==4||cnt&&i==2)//是否是4,上一个是6当前是2要continue;
continue;
ans+=dfs(len-1,i==6,ok&&i==maxx);
}
if(!ok)
dp[len][cnt]=ans;
return ans;
}
int f(int n) {
int len=0;
while(n) {
digit[++len]=n%10;
n/=10;
}
return dfs(len,0,1);
}
int main() {
int n,m;
memset(dp,-1,sizeof(dp));
while(scanf("%d%d",&n,&m),n||m) {
printf("%d\n",f(m)-f(n-1));
}
return 0;}
最新文章
- 【CentOS】LAMP相关2
- Java继承中的转型及其内存分配
- NDK学习一: 环境搭建Eclipse篇
- WS-Security
- ASP.NET MVC 使用 IOC框架 AutoFac 自动释放数据库资源
- 自定义一个可以使用foreach语句进行迭代的类(IEnumerable)
- (DT系列一)DTS结构及其编译方法
- linux设置LD_LIBRARY_PATH变量
- hdu 4740 The Donkey of Gui Zhou(dfs模拟好题)
- unable to create …
- linux使用yum的方式安装mysql实践
- C# Excel数据导入到数据库
- NLP︱句子级、词语级以及句子-词语之间相似性(相关名称:文档特征、词特征、词权重)
- HRBUST1522【单调队列+DP】
- Bootstrap-datepicker3官方文档中文翻译---I18N/国际化(原文链接 http://bootstrap-datepicker.readthedocs.io/en/latest/index.html)
- oracle针对某列让特定信息排序[decode]
- go struct{}的几种特殊用法
- 如何突破Ue4材质编辑器没有Pass的概念
- BZOJ2670 : Almost
- Excel函数之sumifs应用