博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[SCOI2009] windy数
阅读量:5297 次
发布时间:2019-06-14

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

数位 DP 题目。

说起来数位 DP 是不是都这么设计状态啊 …… 积累好贫乏有人教教我吗 ……

#include 
#include
#include
#include
#include
#include
#include
using namespace std;long long l, r, len, a[12], dp[12][12], ans; // 搜到第 i 位,上一位为 j (j != limit_num) 的方案数inline long long Abs(long long x) { return x > 0 ? x : -x; }inline long long Deep_fs(int pos, int pre, int firs, int limit) { // 当前位置,前一位数,前面是否全是零,是否为最高位限制 if( pos > len ) return 1; if( limit == 0 && dp[pos][pre] != -1 ) return dp[pos][pre]; long long res = 0, tmp = limit ? a[len - pos + 1] : 9; for(int i = 0; i <= tmp; ++i) if( Abs(i - pre) > 1 ) { if( firs && i == 0 ) res = res + Deep_fs(pos + 1, -2, 1, limit && i == tmp); else res = res + Deep_fs(pos + 1, i, 0, limit && i == tmp); } if( limit == 0 && firs == 0 ) dp[pos][pre] = res; return res;}inline long long Slove(long long x) { len = 0, memset(dp, -1, sizeof dp); while( x ) a[++len] = x % 10, x = x / 10; return Deep_fs(1, -2, 1, 1);}int main(int argc, char const *argv[]){ scanf("%lld%lld", &l, &r), printf("%d\n", Slove(r) - Slove(l - 1)); return 0;}

转载于:https://www.cnblogs.com/nanjoqin/p/11299870.html

你可能感兴趣的文章
对 HTTP 304 的理解
查看>>
深入理解css中的margin属性
查看>>
C++ 删除字符串的两种实现方式
查看>>
电容选型
查看>>
ORA-01502: 索引'P_ABCD.PK_WEB_BASE'或这类索引的分区处于不可用状态
查看>>
Spring EL hello world实例
查看>>
百度地图API地理位置和坐标转换
查看>>
MyBatis学习总结(六)——调用存储过程
查看>>
code-代码平台服务器路径
查看>>
离线安装 Visual Studio Express 而不下载整个镜像文件的方法(转载)
查看>>
2014年国际数学家大会台历
查看>>
2017-2018-2偏微分方程复习题解析10
查看>>
Java抽象类和接口的比较
查看>>
web技术工具帖
查看>>
一次性搞明白 service和factory区别
查看>>
select下拉二级联动
查看>>
iOS UI控件5-UIPickerView
查看>>
深入Java虚拟机读书笔记第三章安全
查看>>
素数筛选法
查看>>
php连接postgresql数据库
查看>>