1. 程式人生 > >環形塗色(dp)

環形塗色(dp)

6. 環形塗色


如上圖,組成環形的格子需要塗3種顏色。
它們的編號分別是1~14
相鄰的格子不能用相同的顏色。
塗色方案的數目是:24576

當格子數目為50的時候,求塗色方案總數。

【原始碼】
【JAVA:於航】

public class A
{
  /*
  static long f(int n){
    if(n==1) return 3;
    if(n==2) return 6;
    return 2 * f(n-2) + f(n-1);
  }
  */
 
  public static void main(String[] args){
    long[] f = new long[50+10];
    f[1] = 3;
    f[2] = 6;
    for(int i=3; i<=50; i++){

      f[i] = f[i-2] * 2 + f[i-1];

//①第二個與第n個同色時,第一個可以塗兩種顏色  ②第二個與第n個不同色時,第一個可以塗一種顏色

    }

    for(int i=3; i<=50; i++){
      System.out.println(i + ": " + f[i]);
    }
  }
}