Link
Solution
问题就是在个数字中选出的倍数个,使得这些数字的值为给定值,询问方案数目。
直接DP是很显然的:表示算到了第个数字,取的数字值为,取了的个数的方案数目。
方程为
发现卡空间,可以直接把这个方程用背包的方法原地转移。
发现TLE,那就把排个序,每次只需要处理个数字,总复杂度。
看到Claris大神给了另一个DP:
方程相应为
这样确实就需要用那种神奇的方法了……这个神奇的方法确实很厉害,应该能在别的地方用到,但我还是觉得对这道题来说我的方法好一些。
Tips
如果给定一个的条件,要对这个条件思考一下能不能用来优化。另一个例子就是SDOI的那道虚树DP。 的题目排序之后就可以让的值域单调,也许能有些用处。
Code
1 |
|