花費了好長時間,終於刷掉了這道題。
題目在這裡(洛谷)
(資訊學奧賽一本通)
嗯,沒錯,這是一道快速冪的題,不會快速冪點這裡
好現在開始分析,這道題用小學奧數的思想就可以想到,直接算有多少種可能比較難,所以就算出所有的情況再減去不越獄的情況,就是越獄的情況了。所有情況就是mn,不發生的情況就是m*(m-1)(n-1),所以,發生的情況就是mn-m*(m-1)(n-1)。
然後就成功的算出了發生的情況數。
**如下
1 #include2#define ll long long //
下面ll可以代替long long
3using
namespace
std;
4 ll m, n, mod=100003;5
ll power(ll a, ll b)
12return
ans;13}
14int
main()
15
這個**樣例是可以過去的,but只有10分,我也不知道為啥。
但是根據對輸出的分析,我給快速冪多mod了幾下,竟然ac啦…
所以看下面,ac**
1 #include2#define ll long long
3using
namespace
std;
4 ll m, n, mod=100003;5
ll power(ll a, ll b)
12return
ans;13}
14int
main()
15
P3197 HNOI2008 越獄(快速冪)
監獄有連續編號為 1 n1 n1 n 的 nnn 個房間,每個房間關押乙個犯人,有 mmm 種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄。輸入格式 輸入兩個整數 m,nm,nm,n 輸出格式 可能越獄的狀態數,模 100003100003...
快速冪 越獄
監獄有連續編號為 11 到 nn 的 nn 個房間,每個房間關押乙個犯人。有 mm 種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人信仰的宗教相同,就可能發生越獄。求有多少種狀態可能發生越獄。輸入格式 共一行,包含兩個整數 mm 和 nn。輸出格式 可能越獄的狀態數,對 100003100003...
P3197 HNOI2008 越獄 題解
監獄有 n 個房間,每個房間關押乙個犯人,有 m 種宗教,每個犯人會信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄。答案對 100,003 取模。輸入只有一行兩個整數,分別代表宗教數 m 和房間數 n 輸出一行乙個整數代表答案。輸入 1 2 3輸出 1 6樣例...