数位dp:处理数字数位关系的一种dp方式. 一般的题目特征十分明显: 1.一般和数字本身有很大关系. 2.一般求数字在区间L,R中的一些信息 3.L,R一般很大,通常能达到long long级别. dp方式也比较有套路: 一般有三种方法: 本质上的相似之处,都是集中在处理“填数有无限制”,“填数无限制情况下的固定方案数”,“某些已经搜出来的固定方案数” 1.记忆化搜索(没用过) 是一种倒着记忆的方法. 2.递推(我基本都是这个方法) 正着递推出答案. 一般会从高位向低位递推,讨论高位的填数方法,…
题目 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 数位DP (1)分情况,逐位讨论. (2)模型:计算在[L,R]中有多少个数满足条件. (3)套路:将问题转化为[1,R]-[1,L-1],只需回答[1,X]的询问即可. 思路 1.算出[1,X]: (1)按位拆分,为后面做铺垫 (2)预处理: 1)pow[]表示10的次幂 2)f[]表示:后i位自由的话每个数字出现的次数 ps:有一个规律.0~9每个数字出现1次,10~99出现20次,100~99…
https://www.luogu.org/problemnew/show/P2602 第二道数位dp,因为“数位dp都是模板题”(误),所以是从第一道的基础上面改的. 核心思想就是分类讨论,分不同情况讨论对答案的贡献. 最最重要的是,该数位取与当前位相等的时候,贡献的个数是受这个数位影响的所有数(这个写法里包括它本身),那么就用x减去与x前缀相同的“整数”再+1就可以算出来了. 其他的数位dp……好像就不太会写了,再研究一下. #include<bits/stdc++.h> using na…
数位DP,即对数位进行拆分,利用数位来转移的一种DP,一般采用记忆化搜索,或者是先预处理再进行转移 一个比较大略的思想就是可以对于给定的大数,进行按数位进行固定来转移记录答案 区间类型的,可以考虑前缀和的思想,求[l,r]可以看做求[1,r]-[1,l) 其实还有一种,是按照二进制建一颗0,1树来表示,来做,但是比并没有做过,以后再总结 HDU-2089 题目大意:对于区间[L,R]求有多少不包含'62'且不包含'4'的数,题目允许有前导零 思路: 数位DP,考虑F[i][j]表示位数为i,最高…
D. Roman and Numbers time limit per test 4 seconds memory limit per test 512 megabytes input standard input output standard output Roman is a young mathematician, very famous in Uzhland. Unfortunately, Sereja doesn't think so. To make Sereja change h…
时间紧张,就不讲那么详细了. 之前一直被深搜代码误解,以为数位dp 其实就是记忆化深搜...(虽说爆搜确实很舒服而且还好想) 但是后来发现数位dp 的标准格式其实是 预处理 + dp ...... 数位dp 的介绍 数位 dp 其实就是让你处理出某一区间范围内满足条件的数的个数,但是一般这个区间范围都是令人绝望的大...比如 1e9 都算良心了,常规的都是 1e18 甚至是 1e10n (n 一般为 3 或 5)次这样的... 数位dp 的一般解法 那么我们知道肯定不能在区间内一个个去判断数字是…
Valley Numer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1402    Accepted Submission(s): 713 Problem Description 众所周知,度度熊非常喜欢数字. 它最近发明了一种新的数字:Valley Number,像山谷一样的数字. 当一个数字,从左到右依次看过去数字没有出现先递增…
HDU 2089 不要62 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2089 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众.不吉利的数字为所有含有4或62的号码.例如:62315 73418 88914都属于不吉利号码.但是,6115…
题目描述 求 $[L,R]$ 内满足:数位中不包含7.数位之和不是7的倍数.本身不是7的倍数 的所有数的平方和 mod $10^9+7$ . 输入 输入数据的第一行是case数T(1 <= T <= 50),然后接下来的T行表示T个case;每个case在一行内包含两个正整数L, R(1 <= L <= R <= 10^18). 输出 请计算[L,R]中和7无关的数字的平方和,并将结果对10^9 + 7 求模后输出. 样例输入 31 910 1117 17 样例输出 2362…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 题意:求[n, m]区间内不含4和62的数字个数. 这题有两种思路,直接数位dp和dfs 数位dp: dp[i][j]表示i位数,首位是j的符合要求的数字个数. j = 4时    dp[i][j] = 0 j != 4时   例如求dp[3][2],2xx的个数,2已经确定了,2后面xx的个数即为2xx的个数,只用求出0x, 1x, 2x...9x的个数之和即可.同时要注意限制条件,dp[i…