poj 3734 簡單快速冪

2021-08-20 17:03:31 字數 1041 閱讀 7873

// 開始想的是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 ...