随笔分类 - [动态规划] 数位DP
摘要:题目 Blinker 有非常多的仰慕者,他给每个仰慕者一个正整数编号。而且这些编号还隐藏着特殊的意义,即编号的各位数字之积表示这名仰慕者对Blinker的重要度。 现在Blinker想知道编号介于某两个值A,B之间,且重要度为某个定值K的仰慕者编号和。 题解 这题就像 淘金 和 方伯伯的商店之旅 各
阅读全文
摘要:题目 小Z在玩一个叫做《淘金者》的游戏。游戏的世界是一个二维坐标。X轴、Y轴坐标范围均为1..N。初始的时候,所有的整数坐标点上均有一块金子,共N*N块。 一阵风吹过,金子的位置发生了一些变化。细心的小Z发现,初始在(i,j)坐标处的金子会变到(f(i),f(j))坐标处。其中f(x)表示x各位数字
阅读全文
摘要:题目 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。 题解 就暴力每个数码都数位dp统计一遍。主要要注意前导0的处理,我用了一个lead参数来标明。有前导0影响的题都可以用这个参数来处理。 #include <bits/stdc++.h> #define
阅读全文
摘要:题目 求出小于等于n的正整数中,多少数是$x \oplus 3x = 2x$的解。 求出小于等于$2^n$的正整数中,多少数是$x \oplus 3x = 2x$的解,模1e9+7。 题解 观察方程的解的性质,可以化成$x \oplus 2x = 3x = (x + 2x)$。异或有称作无进位的加,
阅读全文
摘要:题意 方伯伯有一天去参加一个商场举办的游戏。商场派了一些工作人员排成一行。每个人面前有几堆石子。说来也巧,位置在 i 的人面前的第 j 堆的石子的数量,刚好是 i 写成 K 进制后的第 j 位。 现在方伯伯要玩一个游戏,商场会给方伯伯两个整数 L,R。方伯伯要把位置在 [L, R] 中的每个人的石子
阅读全文
摘要:介绍 数位dp一般用于解决区间[L, R]的计数问题。这里的L, R一般非常大。 数位dp基本上是通过求[1, R]之间的满足条件的数。用[1, R] 减去 [1, L]就是区间[L, R]的结果。 正如其名,数位dp就是在数的每个数位上dp,寻找当前位到下一位之间的状态转移关系。 从一道例题开始
阅读全文

浙公网安备 33010602011771号