[题解] Mivik 卷积
欢迎到我的博客查看
两个多项式
两个盒子,从第一个里面选
i 个(0\le i<|A| )物品权值为A_i ,从第二个里面选j 个(0\le j<|B| )权值为B_j 。C_i (0\le i<|A|+|B|-1 )的值为从两个盒子里面选总共i 个的最大权值和。
容易证得 Mivik 卷积的结合律和交换律(考虑下标的和)。然后我们发现整个问题就变成了:
要求构造
|S|-1 个物品,第i 个物品不选的权值为b_i ,选的权值为a_i ,使得从其中选i 个物品(0\le i<|S| )的最大权值和恰为S_i 。
我们考虑如果给定物品我们怎么计算
我们发现
所以这真的是一道良心语文题。
mivik.h
代码