随笔分类 - 动态规划——数位DP
摘要:http://codeforces.com/contest/55/problem/D 题意: 询问[l,r]内有多少个数字,满足能被自己的每一位非0数整除 数位DP 表示出当前对2520取模的余数,以及目前各个数位数字的最小公倍数 因为0—9的最小公倍数是2520,而且最小公倍数只有48种情况 #i
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6148 dp[i][j][0/1]表示第i位,上一位填的是j,这一位能否随便填 #include<cstdio> #include<cstring> #include<algorithm> using namesp
阅读全文
摘要:https://codeforces.com/problemset/problem/1073/E 题意:[l,r]中,出现0—9数字的种类数不超过k的数的和 dp[i][j][0/1] 表示 dfs到第i位以后,数字出现的情况状态为j能转移的状态,是否有上界限制的数字的和 f[i][j] 表示 df
阅读全文
摘要:http://poj.org/problem?id=2282 统计[l,r]中每个数码出现的次数 一个数位dp,之前做的方法是 dp[i][j]表示到第i位,出现了某个数码j次 对每个数码做一遍,然后再去除前导零 比较麻烦 今天发现新思路 f[i][0/1][0/1]表示 dfs到第i位之后,是否有
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4513 f[i][0/1][0/1][0/1] 从高到低第i位,是否卡n的上限,是否卡m的上限,是否卡k的下限 的方案数 g[i][0/1][0/1][0/1] 对应 f 的和
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3131 如果已知 s[i]=j 表示有j个<=n数的数码乘积=i 那么就会有 s[a1]*s[a2] 个数 在一阵风之后到(a1,a2)位置 把所有的j用一个数组b存起来,从大到小排序开始把(1,1)存
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4352 题意: 设一个数的LIS为该数各位拆开来后的最长上升子序列。例如1324的LIS为3。 求l~r中LIS为k的数的个数。 如果能想办法将“最长上升子序列”这个状态压缩为s,那就可以数位dp dp[i][s]
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1026 数位DP 如果前一位填的是0, 0是前导0,下一位可以随便填 0不是前导0,下一位不能填1 为避免这种情况 枚举位数,强制不出现前导0 #include<cstdio> #include<cst
阅读全文
摘要:期望得分:100+100+30=230 实际得分: 正解: 枚举最高的位,这一位m是1但实际用了0 然后剩余的低位肯定是 正数就用1,负数用0 考场思路:数位DP #include<cstdio> #include<cstring> #include<iostream> #include<algor
阅读全文
摘要:期望得分:100+100+50=250 实际得分:100+70+50=220 T1 最大值(max) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK有一本书,上面有很多有趣的OI问题。今天LYK看到了这么一道题目: 这里有一个长度为n的正整数数列ai(下标
阅读全文
摘要:期望得分:100+100+20=220 实际得分:100+100+20=220 模拟栈 #include<cstdio> #include<cstring> using namespace std; #define N 10002 char s[N],st[N]; int top; int main
阅读全文
摘要:https://www.luogu.org/problem/show?pid=2602 题目描述 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。 输入输出格式 输入格式: 输入文件中仅包含一行两个整数a、b,含义如上所述。 输出格式: 输出文件中包含一行1
阅读全文
摘要:https://vjudge.net/problem/UVA-1640 题意:统计区间[l,r]中0——9的出现次数 数位DP 注意删除前导0 #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> using n
阅读全文
摘要:B-number http://acm.hdu.edu.cn/showproblem.php?pid=3652 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Descr
阅读全文