P3784 [SDOI2017]遗忘的集合

非常神仙的一道题!

题意:给出某n个数字跑完全背包m容量的dp数组,求满足要求的字典序最小的n个元素,不知道n是多少。

首先考虑付公主的背包这个题。

对dp数组求一个ln,设它为F。

已知 e(G1+G2+G3)=eF,其中Gi是第i个物品的生成函数求ln。(重量为i的物品的Gi=∑ 1/i ✖ x^vi)

(上面用到的都是付公主的背包中的一些结论)

设ans[n]表示是否有n这个物品,有的话为1,没有为0。

然后显然就有 F【n】=∑ d|n ans[d] ✖ (1/(n/d)) =∑ d|n ans[d]*d/n

等价于 F[n] ✖ n=∑ d|n and[d] ✖ d

调整一下F数组和ans数组,愉快的mobius反演一下就可以求出ans数组了。

本来是一个非常好的题,但非要强行加一个MTT就太毒瘤了。

posted @ 2019-04-03 06:54  Creed-qwq  阅读(114)  评论(0编辑  收藏  举报