这道题就是西安挂铁被卡的题。
从10.27吧到最近从新思考这道题,请教了几位巨巨,都是只扔下一个公式,问具体模型想法就一副不耐烦的样子,或者不着边际。唉
这道题真的不是那么简单(或许巨巨们做过类似的题目,模型记住了.....)。
题意:给定n,m,k 要求从m个颜色中选k个恰好涂满n个方格,要求相邻的颜色不能一样。
这道题刚开始想波利亚定理,但是很快被否定了,因为这个有位置因素。后来推公式k*(k-1)^(n-1) ,发现这个里面包含了2,3,4...k的各种组合的情况。
于是思路转变到当得到k-1的结果,能否相减得到。这个自然也是不行的,因为里面都不只包含一次。
注意,此时我们对于一个一个选取时判断的单位都是满足2,3这种情况下的结果(就是这k个颜色中用两个/三个涂的情况)。
eg:选取的颜色1 2 3 4 此时你要选3个颜色,会有1 2 3 , 1 2 4 这两种情况下,1 2 涂就会重复计算。
于是就死到这里了。
大家都说容斥,这个不太像标准的容斥,其实就是减掉多算的而已。换个角度,应该以用i种颜色涂色种数为单位。
以7为例:
ai表示用i种颜色涂会有几种情况(这里不考虑k种颜色中的2,3,4....k-1有多少种情况)
可以看出,这里的容斥是将2,3,4,...k-1的情况去掉,计算的时候是这几种颜色,而不是用k种颜色中的2,3,4....k-1有多少种情况。
[](https://blog.youkuaiyun.com/wujysh/article/details/43085255)