给出n*n的矩阵a,设
ans=∏i=1nai,bians=∏i=1nai,bi
其中,bb为n的排列,
求对于所有b,ans的和
这题是一道提答题
Solution
这里给出的解法(主要是空间小)
最终的答案为:
Ans=∑S∈Sn(−1)n−|S|∏i=1n∑j=1nai,j∗[j∈S]Ans=∑S∈Sn(−1)n−|S|∏i=1n∑j=1nai,j∗[j∈S]
SnSn为1~n的集合
最后一个∑∑可以预处理一半,再O(2)O(2)出解,
总复杂度为O(2nn)O(2nn)
证明
后面的式子可以看成是不同的选取方案的和,
合法的方案一定在容斥系数为1的时候出现且只出现一次(全集),
剩下不合法的,一定会被2n−|x|2n−|x|个S包含,也就是出现的次数一定是2n−|S|2n−|S|次,且容斥系数一半为1,一半为-1,
所有,式子最后的值就只有合法的方案的贡献,