本文主要是介绍三色染色问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
三色染色问题
有排成一行的n个方格,用红、黄、绿三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色。
求全部的满足要求的涂法种数。
代码
#include<iostream>
#include<cstdio>
using namespace std;
long long dp[100]={0,3,6,6};
int main(){int n;scanf("%d",&n);for(int i=4;i<=n;i++){dp[i]=dp[i-2]*2+dp[i-1];}printf("%lld\n",dp[n]);return 0;
}
这篇关于三色染色问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!