题目:
给出 n 个物品,每个物品有一个权值 ai。
定义一个集合 S 的权值 w(S)=|S|∑x∈Sax。
定义一个划分的权值为 ω(R)=∑S∈Rw(S)。
求将 n 个物品划分成 k 个集合的所有方案的权值和。答案对 109+7 取模。
n,k≤2×105,ai≤109。
题解:
显然答案为
n∑i=1ain∑j=1j{n−jj−1}(n−1j−1)
设 ans=n∑j=1j{n−jj−1}(n−1j−1),有
法一:
ans=n∑j=1j{n−jj−1}(n−1j−1)=n∑j=1j(n−1j−1)k−1∑i=0(−1)i(k−i−1)n−ji!(k−i−1)!=k−1∑i=0(−1)ii!(k−i−1)!n∑j=1j(k−i−1)n−j(n−1j−1)=k−1∑i=0(−1)ii!(k−i−1)!(n∑j=1(k−i−1)n−j(n−1j−1)+n∑j=1(j−1)(k−i−1)n−j(n−1j−1))=k−1∑i=0(−1)ii!(k−i−1)!(n∑j=1(k−i−1)n−j(n−1j−1)+(n−1)n∑j=1(j−1)(k−i−1)n−j(n−2j−2))=k−1∑i=0(−1)ii!(k−i−1)!((k−i)n−1+(n−1)(k−i)n−2)
法二:
orz EI。
ans=n∑i=1i{n−ii−1}(n−1i−1)=1nn∑i=1i2{n−ii−1}(n−1i−1)
考虑 EGF。
对于 {n−ii−1},其EGF为 ^G(x)=(ex−1)k−1(k−1)!。
ans=1n[xnn!]((x+x2)((ex−1)k−1(k−1)!+k(ex−1)kk!))=1n(n(k{n−1k}+{n−1k−1})+n(n−1)(k{n−2k}+{n−2k−1}))={nk}+(n−1){n−1k}
本文作者:trsins
本文链接:https://www.cnblogs.com/trsins/p/15815381.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步