CF997C Sky Full of Stars 数论

正解:容斥

解题报告:

传送门!

两个方法,分别港下QAQ

先说第一种

首先要推出式子,就2*C(i,n)*(-1)i+1*3i*3n*n-n+3*∑(-1)i+j+1*C(i,n)*C(j,n)*3(n-i)(n-j)

理解其实不难理解的?就至少有i行j列相同的方案数嘛

具体来说,首先从n行中选i行,n列中选j列的方案数是C(i,n)*C(j,n),然后除了这i行这j列以外还有(n-i)(n-j)个格子,这些格子都可以随便填的,所以是3(n-i)(n-j),然后选出的这i行j列的颜色有3种可能所以最前面有个3,容斥不解释了太显然

然后这显然是个暴力,要n2地跑,过不去

所以考虑怎么优化QAQ

可以发现前面那个复杂度是对的麻油什么问题,是后面那个式子要优化嘛,所以只看后面那个式子就好

可以先把i提到前面,就变成了3*(-1)i+1*C(i,n)∑(-1)j*C(j,n)*3(n-i)(n-j)

然后这样子,有点麻烦,可以考虑把i替换成n-i,j替换成n-j,又因为C(n-i,n)=C(i,n),C(n-j,n)=C(j,n)

所以就变成,3*∑(-1)i+1*C(i,n)∑(-1)i+j+1*C(j,n)*3i*j,-1放进去就是3*∑(-1)i+1*C(i,n)∑*C(j,n)*(-3i)*j

然后考虑二项式定理,(a+b)n=∑C(i,n)*ai*bn-i

所以后面∑(-1)j*C(n-j,n)*3(n-i)(n-j)这一堆,就可以变成(1-3i)n

但是这里注意一下,二项式定理中的i是从0开始的,然后上面列出来的式子是从1开始的,所以加多了,所以要减一个[(-3)i]n

综上,就求个∑2*C(i,n)*(-1)i+1*3i*3n*n-n+3*∑(-1)i+1*C(i,n)*[(1-3i)n-(-3i)n]

大概就这样儿,over

等下放代码QAQ

然后法二等下写QAQ

猜你喜欢

转载自www.cnblogs.com/lqsukida/p/10507226.html
sky