给一个区间 $[l,r]$ ,问满足 $l\leq x\leq r$ 并且 $x$ 每一位数字种类不超过 $k$ 的方案数 $\rm mod$ $998244353$。
$(l,r\leq 10^{18},k\leq 10)$
题目链接
题解
- 自己想到了考虑每一位算贡献,但要控制每个数$l\leq x\leq r$,没想到怎么处理。
实际上还是自己不想动脑子- 将 $k$ 的限制状态压缩为二进制即可。
- 考虑从高位向低位枚举数字,需要考虑两个方面。1.数字大小限制 。2.前导零限制。
- 状压搜索dp即可
- 转移是低位向高位转移,贡献是:低位的方案数 $\times$ 当前位为贡献 $+$ 低位的贡献和。
代码
1 |
|