// 開始想的是rgby,4x4...結果發現進行不下去
// 原來是簡單的計數就好,分類討論
// a:同偶
// b:單偶
// c:無偶
// 那麼從第i個格仔,到第i+1個格仔塗色的話
// a(i+1) 2 1 0 a(i)
// b(i+1) = 2 2 2 x b(i)
// c(i+1) 0 1 2 c(i)
// // 簡單來說:
// 對於同偶a(i+1) 有三種情況
// 之前是同偶的情況,那由第i+1個格仔刷其他兩種無關顏色 即2*a(i)
// 之前是單偶只能將第i+1個格仔刷成紅綠中的單數的那個顏色,變成偶數 即b(i)
// 而無偶無法通過刷第i+1個格仔得到
// // 對於單偶b(i+1) 同樣:
// 之前是同偶的情況 任意刷紅綠即可變為單偶 即:2*a(i)
// 之前是單偶 刷其他兩種無關顏色 即:2*b(i)
// 無偶 刷紅綠其中之一 即:2*c(i)
// // 對於無偶c(i+1) 同樣:
// 之前是同偶的情況 無法完成
// 之前是單偶 將第i+1個格仔刷成紅綠中的偶數的顏色 即:b(i)
// // 想一下還是覺得可做的,繼續加油吧~~~~
#include #include #include using namespace std;
const int mod = 10007;
struct matrixm;
matrix mul(matrix a,matrix b)}}
return c;
}void print(matrix &a)
cout << endl;
}}void pow(matrix a,int n)
printf("%d\n",res.a[1][1]);
}int main()
return 0;
}
poj3734矩陣快速冪
挑戰上面的題目,感覺腦洞很大 分別找紅藍個數全為偶,全為奇,一奇一偶的個數ai,bi,ci 轉移矩陣是 2 1 0 是乙個對稱矩陣 會不會有什麼聯絡。2 2 2 0 1 2 include include include include include include include include...
簡單快速冪
對於求乙個數a的n次冪,我們第一想法就是呼叫包含在標頭檔案cmath或math.h標頭檔案下的pow a,n 函式,為了演算法看起來簡單用int代替大數模版。最簡單的實現就是用乙個迴圈和乙個變數,不斷用變數乘上底數,當然,這樣做的效率並不高o n include using namespace st...
簡單快速冪
本篇文章將介紹關於快速冪的知識,將會對後面的學習有所幫助。p1226傳送門 如何讓計算機計算出 a b bmod p 第一種演算法 樸實無華的 o n 演算法 long long qpow int a,int b,int p return ans 當然,以上解法肯定正確,但當 b geq 10 8 ...