绘制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 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短