題目:
監獄有連續編號為 11 到 nn 的 nn 個房間,每個房間關押乙個犯人。
有 mm 種宗教,每個犯人可能信仰其中一種。
如果相鄰房間的犯人信仰的宗教相同,就可能發生越獄。
求有多少種狀態可能發生越獄。
輸入格式:
共一行,包含兩個整數 mm 和 nn。
輸出格式:
可能越獄的狀態數,對 100003100003 取餘。
資料範圍
1≤m≤108 //10的8次方
1≤n≤1012//10的12次方
輸入樣例:
2 3輸出樣例:
6樣例解釋
所有可能的 66 種狀態為:(000)(001)(011)(100)(110)(111)(000)(001)(011)(100)(110)(111)。
題解:所有的方案數是m的n次方,那麼不會發生越獄的情況是m*(m-1)的(n-1)次方,這裡分別用快速冪來求就行,只不過相減的時候可能出現負數的情況,這個時候需要加上mod就行(重點,記住)
#include
#include
using
namespace std;
typedef
long
long ll;
const
int inf=
0x3f3f3f3f
;const
int maxx =
1e6+10;
const
int mod=
100003
;int ans=0;
intqmi
(int a,ll k)
return res;
}void
solve()
intmain()
快速冪 越獄
監獄有連續編號為 11 到 nn 的 nn 個房間,每個房間關押乙個犯人。有 mm 種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人信仰的宗教相同,就可能發生越獄。求有多少種狀態可能發生越獄。輸入格式 共一行,包含兩個整數 mm 和 nn。輸出格式 可能越獄的狀態數,對 100003100003...
越獄 快速冪取模
監獄有連續編號為1.n的n個房間,每個房間關押乙個犯人,有m種宗教,每個犯人可能信仰其中一種。如果 相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄。2 36 6種狀態為 000 001 011 100 110 111 思路 所有的可能的情況數為 m n,不發生越獄的情況數為 m...
BZOJ 1008 越獄(快速冪)
description監獄有連續編號為1 n的n個房間,每個房間關押乙個犯人,有m種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄 input 輸入兩個整數m,n.1 m 10 8,1 n 10 12 output 可能越獄的狀態數,模100...