ZCMU1598TomCat的環(快速冪解法)

2021-08-21 20:55:12 字數 878 閱讀 9971

tomcat有乙個環(如圖)有n個單元,並且有4中顏色。他希望把環的每乙個單元格都染上顏色,但是相鄰的兩個單元格顏色不能相同。他想知道一共有幾種染色方法

輸入單元格數n,n<=100000。

輸出染色總數對1000000007取餘的結果。1

2 4 12

這道題的題意就是有n個區塊,然後用4中顏色去染色,問有多少種染色的方法,其實也就是問有幾種排列組合的方法:

說到現在,那其實這一道題就是一道數學題嗎。那就用數學的方法去解他。

這個是解n個區塊m種顏色染色方法的總結公式:(圖畫的有點醜)

最剛開始先定義乙個快速冪的quick_pow函式:這個函式裡面a是底數,b是指數,其實就是b在減少,然後a不斷乘以a然後再除以mod,b二進位制移位。

主函式裡面的話:因為這個是4種顏色,所以做的時候直接把m=4帶進去就可以了,那就是主要對n的奇偶性進行判斷就可以了。

下面是ac**:

#include using namespace std;

#define mod 1000000007

long long quick_pow(long long a, long long b)//快速冪的方法(模板函式可以背背,到時候直接用就好了)

a=a*a%mod;

b>>=1;

} return ans;

}int main()

} return 0;

}

ZCMU 1595 TomCat要吃飯 水

time limit 1 sec memory limit 128 mb tomcat 是一次單身cat,但是他有著很多的 每次吃飯都會qq他的某乙隻 然而,他的 jerry 總是很墨跡。等待是無聊的,這時tomcat在學校的地上亂走,這時他發現地上有方塊鋪成的,他按照下圖的規律走,現在無聊的tom...

4927 剩下的樹 ZCMU

有乙個長度為整數l 1 l 10000 的馬路,可以想象成數軸上長度為l的乙個線段,起點是座標原點,在每個整數座標點有一棵樹,即在0,1,2,l共l 1個位置上有l 1棵樹。現在要移走一些樹,移走的樹的區間用一對數字表示,如 100 200表示移走從100到200之間 包括端點 所有的樹。可能有m ...

ZCMU 1774 最短的串

time limit 1 sec memory limit 128 mb submit 26 solved 10 submit status web board 給出乙個字串s,需要找到最短的子串s,使得子串s包含s中出現的所有字母至少一次,輸出這個長度 length s 1000000 乙個字串s...