绘制N幅画的方式,以使相邻的画在C ++中没有相同的颜色
在这个问题中,我们给了两个整数n和m,其中n是绘画数量,m是可用颜色的数量。我们的任务是创建一个程序,该程序将找到可以绘画方式的总数,以使连续绘画中的任何一种都不具有相同的颜色。
让我们举个例子来了解这个问题,
输入值
n = 3, m =3
输出结果
12
说明
P1 P2 P3 C1 C2 C3 C1 C3 C2 C1 C2 C1 C1 C3 C1 C2 C1 C2 C2 C3 C2 C2 C1 C3 C2 C3 C1 C3 C1 C3 C3 C2 C3 C3 C1 C2 C3 C2 C1
为了解决这个问题,我们可以用m种颜色绘画所有n幅画,现在可以使用n-1种颜色(除了用于绘画最后一幅画的颜色)绘画下一幅画。因此,总数为
n*(m-1)(n-1)
显示我们解决方案实施情况的程序,
示例
#include <iostream>
#define modd 1000000007
using namespace std;
unsigned long calcPower(unsigned long base, unsigned long power, unsigned long p){
unsigned long result = 1;
base = base % p;
while (power > 0) {
if (power & 1)
result = (result * base) % p;
power = power >> 1;
base = (base * base) % p;
}
return result;
}
int colorPainting(int n, int m){
return calcPower(m - 1, n - 1, modd) * m % modd;
}
int main(){
int n = 5, m = 7;
cout<<"给给定绘画上色的方法有: "<<colorPainting(n, m);
return 0;
}输出结果
给给定绘画上色的方法有: 9072
热门推荐
10 小侄过生日祝福语简短
11 小店营业的祝福语简短
12 担任老师的祝福语简短
13 饮料吧台祝福语简短大气
14 公司新春搞笑祝福语简短
15 高情商敬酒祝福语简短
16 婚礼祝福语新郎妹妹简短
17 教师答辩通过祝福语简短
18 生女孩红包简短祝福语