監獄有 \(n\)個房間,每個房間關押乙個犯人,有\(m\)種宗教,每個犯人會信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄。
答案對 \(100,003\)取模。
輸入只有一行兩個整數,分別代表宗教數 \(m\) 和房間數\(n\)。
輸出一行乙個整數代表答案。
輸入 #1
2 3
輸出 #1
6
樣例輸入輸出 1 解釋
狀態編號
1 號房間
2 號房間
3 號房間
1信仰 1
信仰 1
信仰 1
2信仰 1
信仰 1
信仰 2
3信仰 1
信仰 2
信仰 2
4信仰 2
信仰 1
信仰 1
5信仰 2
信仰 2
信仰 2
6信仰 2
信仰 2
信仰 1
資料規模與約定
對於 \(100\%\) 的資料,保證 \(1 \le m \le 10^8\),\(1 \le n \le 10^\)。
這題要我們求的是有幾種情況是會發生越獄的,我們可以把它轉化成所有的情況減去不會發生越獄的情況的數量。
相對來說,後者的表示是比較簡單的,通過推公式可以知道。
\[ans=m^n-m*(m-1)^
\]推出公式以後,**也就很好實現了。
#include #define ll long long
const int mod=100003;
using namespace std;
ll n,m;
inline ll qpow(ll a,ll b)
return x;
}int main()
洛谷 P3197 HNOI2008 越獄
來來來,日常水一篇 滑稽 監獄有連續編號為1 n的n個房間,每個房間關押乙個犯人,有m種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄 輸入格式 輸入兩個整數m,n.1 m 10 8,1 n 10 12 輸出格式 可能越獄的狀態數,模1000...
P3197 HNOI2008 越獄(快速冪)
監獄有連續編號為 1 n1 n1 n 的 nnn 個房間,每個房間關押乙個犯人,有 mmm 種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄。輸入格式 輸入兩個整數 m,nm,nm,n 輸出格式 可能越獄的狀態數,模 100003100003...
洛谷 P3197 HNOI2008 越獄 題解
監獄有連續編號為 1 n 的 n 個房間,每個房間關押乙個犯人,有 m 種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄。輸入兩個整數 m,n 可能越獄的狀態數,模 100003 取餘 輸入 1 2 3輸出 1 6種狀態為 000 001 0...