题目叙述
为了庆祝2009NOIP的举办,X市决定举行一次规模宏大的联欢晚会。设计师Tom被邀请负责晚会的灯光设计。
晚会舞台的正上方有 n 盏可以任意变换颜色的彩灯。它们排列成规则的圆形。为了增加舞台的美感,Tom 决定将任意两盏相邻彩灯设计成不同的颜色。因为演出时还要随时变换彩灯的颜色,所以Tom必须设计出多种方案(只要有一盏对应的彩灯颜色不同,就算两种不同的方案)。
于是一个棘手的问题摆在Tom面前:若有m 种颜色, n 个彩灯,那么不同的设计方案有多少种呢?因为当n , m 较大时,方案数太多,因此他需要你的帮助。
注意:因为每一盏彩灯的位置固定,所以经过旋转或翻转能重合的也算不同的方案。
输入
输入共有一行,两个数: n ,
m ,依次为彩灯的个数与颜色总数。 (1≤n≤100,1≤m≤100)
输出
输出仅有一个数为方案总数。
样例输入
3 4
样例输出
24
先给出自己的很麻烦的递推。
首先这道题一看就是递推。
然后要怎么推呢?
简单来说,我们把灯断开拉成一条链,管他第一个灯在哪,就让他随便。
这样的话第一盏灯的颜色有 m 种情况。
对于每种情况分别计算,但是其实都是一样的,所以只需要计算其中一种然后
对于其中的一种,举 m=4 的情况。
看第一层。
比如说是A,那么第二层一定不能是A,只可能是BCD。
很显然BCD每个下面都会有一个A的可能。
再向下一层,则每个不是A的下面的 m−1 种情况都会有一个A,每个A的下面的m-1种情况都不会是A。
然后推到了第n盏灯。
如果第 n−1 盏灯的颜色是A的话,那么他下面第 n 盏灯的
如果第 n−1 盏灯的颜色不是A,那么要排除A和他本身,也就是说只剩 m−2