Ex - Card Deck Score
这题还比较有意思,设Fi(x)=∑j=0BjAjxj=1−AjBi+1xBi+11−AjxF_{i}(x)=\sum_{j=0}^{B_j}A_jx^j=\frac{1-A_j^{B_i+1}x^{B_{i+1}}}{1-A_jx}Fi(x)=∑j=0BjAjxj=1−Ajx1−AjBi+1xBi+1,答案显然就是[xm]∏i=1nFi(x)=[xm]1∏i=1n(1−Ajx)∏i=1n(1−AjBi+1xBi+1)[x^m]\prod_{i=1}^nF_i(x)=[x^m]\frac{1}{\prod_{i=1}^n(1-A_jx)}\prod_{i=1}^n(1-A_j^{B_i+1}x^{B_{i+1}})[xm]∏i=1nFi(x)=[xm]∏i=1n(1−Ajx)1∏i=1n(1−AjBi+1xBi+1)
考虑到n≤16n\le16n≤16所以后面的式子可以直接暴搜,问题是怎么快速求出前面那部分的某一项的系数,正常来说,由11−x=∑i=0∞xi\frac{1}{1-x}=\sum_{i=0}^\infty x^i1−x1=∑i=0∞xi这个式子,前面那部分可以用一个完全背包来处理,但是这道题mmm会达到101810^{18}1018级别,背包没有前途,要考虑其他做法
发现题目里还有一个不容易被重视的条件,AiA_iAi互不相同,这意味着一定可以找到nnn个数cic_ici满足1∏i=1n(1−Ajx)=∑i=1nci1−Ajx\frac{1}{\prod_{i=1}^n(1-A_jx)}=\sum_{i=1}^n\frac{c_i}{1-A_j{x}}∏i=1n(1−Ajx)1=∑i=1n1−Ajxci,可以直接用高斯消元求出,然后就可以用nlogmn\log mnlogm的时间复杂度求出某项系数了,时间复杂度为nlogm2nn\log m2^nnlogm2n