博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU2089 不要62 BZOJ1026: [SCOI2009]windy数 [数位DP]
阅读量:5080 次
发布时间:2019-06-12

本文共 2137 字,大约阅读时间需要 7 分钟。

基础题复习

这次用了dfs写法,感觉比较好

#include 
#include
#include
#include
using namespace std;typedef long long ll;const int N=10;inline int read(){ char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f;}int r, l, a[N], len;int f[N][2];int dfs(int d, bool flag, bool sky) { //printf("dfs %d %d %d\n",d,flag,sky); if(d==0) return 1; if(!sky && f[d][flag]!=-1) return f[d][flag]; int now=0, lim = sky ? a[d] : 9; for(int i=0; i<=lim; i++) { if(i==4 || (flag && i==2)) continue; now += dfs(d-1, i==6, i==lim && sky); } return sky ? now : f[d][flag]=now;}int cal(int n) { len=0; while(n) a[++len]=n%10, n/=10; return dfs(len, 0, 1);}int main() { freopen("in","r",stdin); memset(f, -1, sizeof(f)); while(true) { l=read(); r=read(); if(l==0 && r==0) break; printf("%d\n", cal(r)-cal(l-1)); }}
#include 
#include
#include
#include
using namespace std;typedef long long ll;const int N=15;inline int read(){ char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f;}int l, r, a[N], len;int f[N][N];int dfs(int d, int last, bool zero, bool sky) { //printf("Dfs %d %d %d\n",d,last,sky); if(d==0) return 1; if(!sky && !zero && f[d][last]!=-1) return f[d][last]; int now=0, lim = sky ? a[d] : 9; //printf("lim %d\n",lim); for(int i=0; i<=lim; i++) if(zero || abs(i-last)>=2) now += dfs(d-1, i, zero && i==0, sky && i==lim); return (sky||zero) ? now : f[d][last]=now;}int cal(int n) { len=0; while(n) a[++len]=n%10, n/=10; return dfs(len, 0, 1, 1);}int main() { freopen("in","r",stdin); memset(f,-1,sizeof(f)); //for(int i=0; i<=50; i+=10) printf("hi %d %d \n",i,cal(i)); //printf("hi %d %d\n",24,cal(24)); l=read(); r=read(); printf("%d\n", cal(r)-cal(l-1));}

转载于:https://www.cnblogs.com/candy99/p/6628984.html

你可能感兴趣的文章
php变量什么情况下加大括号{}
查看>>
linux程序设计---序
查看>>
【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
查看>>
C# Linq获取两个List或数组的差集交集
查看>>
HDU 4635 Strongly connected
查看>>
ASP.NET/C#获取文章中图片的地址
查看>>
Spring MVC 入门(二)
查看>>
格式化输出数字和时间
查看>>
页面中公用的全选按钮,单选按钮组件的编写
查看>>
java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程
查看>>
BZOJ 1047 HAOI2007 理想的正方形 单调队列
查看>>
各种语言推断是否是手机设备
查看>>
这个看起来有点简单!--------实验吧
查看>>
PHP count down
查看>>
JVM参数调优:Eclipse启动实践
查看>>
(旧笔记搬家)struts.xml中单独页面跳转的配置
查看>>
不定期周末福利:数据结构与算法学习书单
查看>>
strlen函数
查看>>
python的列表与shell的数组
查看>>
关于TFS2010使用常见问题
查看>>