题解 P5224 【Candies】
Candies
相信大佬都做过这道题,Candies这道题是我在学长讲完那一道数据比较弱的题目yy出来的优化做法。(如果是任意模数就需要MTT了。。)
15分做法
枚举。。不多BB..
15分做法(看起来强一点的做法)
还是上面那一道题的做法吧。。
我们可以设状态
显然是加入的这一箱可以选,也可以不选。所以我们有转移:
然后就可以拿到
40分做法
发现
然后就可以构造出一个
60分做法(优化1)
这个时候
发现构造的矩阵是一个循环矩阵(此题中为下一行为上一行向右转1得到)
然后就可以考虑每一次做矩阵乘法只需要用第一行乘就行了。因为其他行的答案都可以用旋转得到。
这样复杂度就是
60分做法(优化2)
考虑合并
发现可以有一个暴力转移:
简单的乘法原理应该没有问题吧。。
然后就发现可以倍增,这样就预处理出每一个二进制位的
复杂度
100分做法
发现上面的优化2是一个卷积的形式,所以可以
发现题目非常友好没有要写MTT,给出的模数的原根就是
复杂度
代码太丑了,就不放了。。