这么简洁的题目当然不用数位 DP 啦。 将 \(n\) 搞成 \(10\) 的幂次之和计算。枚举后缀长度 \(i\),考虑它的贡献,因为不能填 \(7\) 也不用考虑前导零所以就是 \(9^i\)。 然后乘上 \(n-i\) 位置上的数字能取到的数量即可。 code: #include<bits/s ...
分类:
其他好文 时间:
2021-06-06 19:26:26
阅读次数:
0
原题链接 考察:数位dp 思路: 求回文数字的个数. dfs参数: 1.pos 枚举到第几位 2.len 回文数的长度. 其实不需要变量记录是否合法,不合法的不取搜就行了. ##Code #include <iostream> #include <cstring> using namespace s ...
分类:
其他好文 时间:
2021-06-02 19:35:00
阅读次数:
0
UVA11361 Investigating Div-Sum Property 给定 \(A,B,K\),求在 \([A , B]\) 中,有多少个整数本身能被 \(K\) 整除,并且各个位上数字之和也能被 \(K\) 整除。 一道非常经典的数位 DP 题。 设 \(f(d,m_1,m_2)\) 表 ...
分类:
其他好文 时间:
2021-04-26 13:29:15
阅读次数:
0
DP相关目录 几个基本 重要的划分依据: “最后”一步 集合划分依据:1. 不重复 2. 不漏 思考方式如下图: 基本模型 数字三角形模型 最长上升子序列模型 背包模型 状态机模型 状态压缩DP 区间DP 树形DP 数位DP 单调队列优化DP 斜率优化DP ...
分类:
其他好文 时间:
2021-03-16 11:58:24
阅读次数:
0
数位DP模板题。 状态表示: \(f[len][cnt]\):表示当前为len位,且当前已统计的$1$的个数为cnt个。 注意点: 一开始把$f$数组表示成一维了,实际上搜索时每层的状态是个三维向量$(len,cnt,limit)$,limit可以不记录在数组中,但len和cnt是一定要记录在数组当 ...
分类:
其他好文 时间:
2021-02-22 12:19:35
阅读次数:
0
求n到m之间的吉利手机号,号码中要出现至少 3 个相邻的相同数字;号码中不能同时出现 8和 4。 这个题需要考虑两个点,一个是前导0,因为有前导0的必然不是手机号,一个是长度必须是11,否则也不是手机号 至于前导0,可以额外开一个维度,记录当前是否有前导0,但是会时内存x2,本题还不会爆,但是别的题 ...
分类:
移动开发 时间:
2021-02-20 12:37:11
阅读次数:
0
题目链接 题解 很普通的数位dp题呐,$state$表示$>0$的数位个数。 AC代码 #include<bits/stdc++.h> #define int long long using namespace std; int dp[20][5],a[20],cnt; int dfs(int po ...
分类:
其他好文 时间:
2021-01-12 11:02:11
阅读次数:
0
题目链接: 发现 \(m\) 很小,所以只需要先数位 \(dp\),然后暴力枚举后 \(8\) 位的情况即可,因为涉及到进位,所以还需要维护第八位之前有几个连续的 \(1\), 设 \(dp[0/1][i][0/1][0/1]\) 表示,当前到第 \(i\) 位,卡不卡上界,从第 \(i\) 位向前 ...
分类:
其他好文 时间:
2021-01-02 10:38:14
阅读次数:
0
1. 标准的卢卡斯定理加数位dp,主要是算C(n,i)*C(n,2*i)。 但由于这题的模数是质数,就不需要考虑很多东西,如:是否超过上限了、是否有连续的进位。 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ...
分类:
其他好文 时间:
2020-10-30 12:28:57
阅读次数:
17
#pragma warning (disable : 4996) #include<iostream> #include<algorithm> //#include<unordered_map> #include<fstream> #include<iomanip> #include<string> ...
分类:
其他好文 时间:
2020-07-29 00:41:30
阅读次数:
78