【bzoj1026】windy数
2024-10-19 11:59:43
江泽OJ好,远离bzoj保平安。
仍然沿用之前的记忆化搜索的办法即可。
#include<bits/stdc++.h>
#define N 10010
using namespace std;
int a[],dp[][];
int dfs(int x,int pre,int lim){
if(x==-)return ;
if(!lim&&~dp[x][pre]&&pre>=)return dp[x][pre];
int maxv=lim?a[x]:,ret=;int st=;
for(int i=;i<=maxv;i++){
if(abs(i-pre)<)continue;
st=i;if(i==&&pre==-)st=pre;
ret+=dfs(x-,st,lim&&(i==maxv));
}
if(pre>=&&!lim)dp[x][pre]=ret;
return ret;
}
inline int work(int x){
int len=;
while(x){a[len++]=x%;x/=;}
memset(dp,,sizeof(dp));
return dfs(len-,-,);
}
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int main(){
int l=read(),r=read();
printf("%d\n",work(r)-work(l-));
}
最新文章
- HDU 1285 确定比赛排名 (数组实现 )
- WPF入门教程系列一——基础
- Java生成公私钥对
- python中的getattr函数
- eXosip2代码分析
- hiho1093_spfa
- fwite写入文件
- mod_rewrite模块详解
- English - little,a little,a few,few的区别
- [勘探开发]成绩,全栈开发,健全&;amp;借贷
- 转:lr_eval_string,lr_save_string 和 sprintf 的使用
- Java经典编程题50道之三十六
- 全文检索-Elasticsearch (四) elasticsearch.net 客户端
- Review: Basic Knowledge about JavaScript 1
- 搭建gitlab本地服务
- 【sqli-labs】Less7
- Ubuntu下 AndroidStudio 无法识别设备的问题
- mysql 8.0,运行springboot项目配置:
- MySQL5.7 的新特点
- 神啊!PS是你这样用的吗?
热门文章
- BZOJ 1452 Count(二维树状数组)
- hdu 3367 Pseudoforest (最小生成树)
- html的body内标签之图片及表格
- 【刷题】BZOJ 1002 [FJOI2007]轮状病毒
- 洛谷 P1841 [JSOI2007]重要的城市 解题报告
- 实验三 Java敏捷开发与XP实践
- 在 C Level 用 dlopen 使用 第三方的 Shared Library (.so)
- ACM3018欧拉回路
- 第k小子集
- python 基础--pip(转)