2014ACM/ICPC亚洲区西安站现场赛 F color(转换角度+容斥)

本文深入探讨了一道复杂排列组合问题的求解过程,通过结合波利亚定理与容斥原理,提出了一种基于容斥的高效算法。详细解析了如何在给定条件下,从多种颜色中选择特定数量的元素,同时避免相邻元素重复的选择方案。文中还对比了传统方法的局限性,并通过实例展示了新算法的优势。

这道题就是西安挂铁被卡的题。

从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)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值