514-栅栏染色
3.28
這個題自己的錯誤,廢了很多時間。
如果是單純地相鄰不許同色的話,應該就是這樣的
public static int numWays1(int n, int k) {if( n ==1){return k;// Write your code here}if(k == 1 && n > 2){return 0;}int x = (int)Math.pow(k-1, n-1);return x*k+2*(n-1); }如果是不允許三根柱子相鄰的話應該是這樣的 public static int numWays(int n, int k) {if( n < 0 && k < 0){return 0;// Write your code here}if( n ==1){return k;// Write your code here}if(k == 1 && n > 2){return 0;}if( n ==2){return k*k;}// 我以為用這種遞歸的方法會超時呢// 其實并沒有呢,哈哈int x = numWays(n-1, k);int y = numWays(n-2, k);return (x+y)*(k-1);/***這種非遞歸的方法應該是會更好一些的int n2 = k * k;for (int i = 2; i < n; i++) {int temp = n1 * (k-1) + n2 * (k - 1);n1 = n2;n2 = temp;}return n2;*/}
總結
- 上一篇: 全文检索中近义词、关联词的解决方案
- 下一篇: EI、SCI、SSCI、核心期刊“老博期