2012年9月14日
摘要:
题意:n个小圆组成的正n边形,中间有一个大圆。有木棍相连的两个圆不能有相同的颜色,旋转后相同视为相同的方案,求着色方案数。设有n个小圆,k种颜色(3<=N<=10^9, 4<=K<=10^9)。首先,很容易想到从k种选一种给大圆,然后用k-1种颜色对小圆着色。若不存在相邻圆颜色不同这个限制,则直接Burnside定理。若存在限制,但是颜色种数很少,可以构造矩阵然后快速幂,得到一个置换使着色不变的着色方案数。现在颜色种数很多,但是颜色限制较简单,可以考虑公式之类的。考虑将n个圆的环,等分成t部分,每部分有m个圆。F表示m个圆满足限制的着色方案数。若m=1,则F=0若m=2 阅读全文
摘要:
题意:一个圆上有n个点,用不同的角度表示,用k种颜色对n个点着色,旋转后相同视为同一种着色方案,问着色方案数。举几个例子:0 90000 180000 270000,每次旋转90度,每个点都能重合。0 45000 90000 180000 270000,无论怎么旋转,都不能重合。30000 150000 180000 330000,旋转180度才能重合。如何判断在旋转360度之内,能重合几次。将两个连续的点之间的角度差值处理出来,最多循环t次,那么有t个旋转使得重合。这可以用到next数组的性质。设当前得到a个循环,每个循环b个点。那么可以把b个点看成一个点,那么问题转化为a个点构成的环,着k 阅读全文