环形染色问题(CSP初赛数学)

 本文转载自知乎 环形染色问题

原作者: 知乎 雨浥星辰 ​

本文改动:将原文中的公式图片使用LaTeX重制


如图所示,一个圆环被分成  m (m \geq 2) 块,用  n(n \geq 2)种不同颜色给每一块染色,要求相邻两块的颜色不相同。此类问题称之为环形染色问题。

环形染色问题可以分为两种,一类是圆环中心区域要染色,一类是圆环中心区域不染色。中心区域染色问题在给中心涂色之后,剩余部分即为中心区域不染色的问题,本文重点讲解中心区域不染色问题。

本文先针对m=4、m=5以分类与分步的做法解决,而后给出此类问题的通解。

n=4,m=4,中心区域不染色

如图,环形区域被分成4块,用4种不同的颜色给这4块区域染色,要求相邻区域颜色不同。

解:

我们先给四块区域标注为A、B、C、D。先给A染色,则有4种颜色,而后B有三种,C也是有三种,但是D则需要分类来讨论。因为D与A、C都相邻,且A、C都已经涂好颜色,则A、C若同色,则D有三种颜色可选,A、C不同色,则D只有两种颜色可以选择,如下图所示

则共有 4\times3\times(1\times3$+$2\times2)=84 种染色方式;

m=5,n=4,中心区域不染色

如图,环形区域被分成5块,用4种不同的颜色给这5块区域染色,要求相邻区域颜色不同。

解:

同上,给五块区域标注为A、B、C、D、E。依旧是按顺序给5块区域染色。则在考虑A、D同色问题时,需考虑到AC是否同色。若A、C同色,则则A、D必定不同色。只有A、C不同色,才有可能出现A、D同色。

因此有以下分类:

1.AC同色:则A、D必定不同色,则五块区域依次有4、3、1、3、2种涂法,共有 4\times3\times1\times3\times2=72 种染色方式 。

2.AC不同色:

(1) A、D同色:则五块区域依次有4、3、2、1、3种涂法,共有 4\times3\times2\times1\times3=72 种染色方式。

(2)A、D不同色,则五块区域一次有4、3、2、2、2种涂法,共有 4\times3\times2\times2\times2=96 种染色方式。

合计共有72+72+96=240种染色方式。

任意 m≥2、n≥2

记当有m块区域时,染色方法有 a_{m} 种;则当m取1、2、3、4、……时,分别有  a_{1}a_{2}a_{3}a_{4}……种染色方式。

首先考虑直线型染色:如下图所示,有m块区域,n种颜色,要求相邻区域不同色。

则除了第一块有n种涂法,其余各块都是n-1种。则共有 n(n-1)^{m-1} 种染色方式。

现在把直线型的两端对接,拼成一个环形。

当两端颜色相同时,首尾对接则会出现有两块相邻区域颜色相同。其余相邻区域颜色则均不同。此时若把相邻颜色相同的区域合并为一个区域,则此时的环形有m-1块区域,任意相邻区域颜色均不相同,对应 a_{m-1} 种染色方式

当两端颜色不同时,首尾对接,则任意相邻区域颜色均不相同,此时的环形有m块区域,对应 a_{m} 种染色方式。

因此有 a_{m}+a_{m-1}=n(n-1)^{m-1} ——①

由此公式,对于没有学习过数列的同学,可以求出 a_{3} 之后,依次递推求出所需 

而对于学过数列的同学,我们可以求出 a_{m} 的通项公式。

对①式稍作变形,有a_{m}+a_{m-1}=(n-1)(n-1)^{m-1}+(n-1)^{m-1}=(n-1)^{m}+(n-1)^{m-1}

移项可得: a_{m}-(n-1)^{m}=-(a_{m-1}-(n-1)^{m-1})

(1) a_{m}-(n-1)^{m}=0

即 a_{m}=(n-1)^{m} ,考虑  a_{2}=n(n-1),与之矛盾,故不合题意,舍去;

(2) a_{m}-(n-1)^m\neq 0

令 b_{m}=a_{m}-(n-1)^m ,则有  \frac{b_{m}}{b_{m-1}}=-1,为等比数列

则 b_{m}=(-1)^{m-2}\cdot b_{2}=(-1)^{m}\cdot b_{2}

代入 b_{2}=a_{2}-(n-1)^{2}=n(n-1)-(n-1)^{2}=n-1

有 b_{m}=(-1)^{m} \cdot b_{2}=(-1)^{m} \cdot (n-1)

代入 b_{m}=a_{m}-(n-1)^{m}

有 a_{m}=(n-1)^{m}+(-1)^{m} \cdot (n-1)

验证时刻:

1:代入m=4,n=4,有 3^{4}+3=84

2:代入m=5,n=4,有 3^{5}-3=240

中心区域染色

圆环有m块区域,再加上中心区域共有m+1块区域;有n+1种颜色

由于中心区域与外环所有区域均相邻,则先涂中心区域,有n+1种涂色方法;

此时余下m块区域与n种颜色,即为中心不染色时m块区域和n种颜色的环形染色问题,代入上述公式,

共有 a_{m}=(n-1)^{m}+(-1)^{m} \cdot (n-1) 种。

合计共有 (n+1) \times a_{m}=(n+1) \times[(n-1)^{m}+(-1)^{m} \cdot (n-1)] 种染色方法。

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSP(China Standardized Programming Contest)初赛是中国计算机学会主办的一项编程竞赛,旨在选拔优秀的程序设计人才。为了帮助参赛者更好地备战CSP初赛,以下是一些基础知识的整理: 1. 编程语言:CSP初赛一般使用C++、Java或Python作为编程语言。掌握其中一种语言的基本语法和常用库函数是必要的。 2. 数据结构与算法CSP初赛注重对数据结构和算法的理解和应用。常见的数据结构包括数组、链表、栈、队列、树、图等;常见的算法包括搜索、排序、贪心、动态规划等。熟悉各种数据结构和算法的原理和实现方法是必备的基础知识。 3. 输入输出:CSP初赛中,对于输入输出格式的处理要求较高。需要学会读取和解析标准输入、标准输出,以及处理文件输入输出。 4. 数学知识:CSP初赛中会涉及一些基本的数学知识,如数论、概率论、统计学等。了解相关概念和公式,并能够应用到具体问题中是必要的。 5. 算法设计与分析:CSP初赛会考察参赛选手的算法设计能力和问题分析能力。需要能够独立思考问题,设计出高效的算法,并分析算法的时间复杂度和空间复杂度。 6. 编程技巧:在CSP初赛中,高效的编程技巧往往能够提高代码的质量和效率。例如,合理使用数据结构、优化算法、处理边界情况等。 以上是CSP初赛基础知识的整理,希望对您备战CSP初赛有所帮助。祝您取得好成绩!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值