監獄有連續編號為1…n的n個房間,每個房間關押乙個犯人,有m種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄
輸入兩個整數m,n.1<=m<=10^8,1<=n<=10^12
可能越獄的狀態數,模100003取餘
2 3
6
6種狀態為(000)(001)(011)(100)(110)(111)
source
好水……
每個犯人都有m種宗教可選,所以總方案數是mn
種。想發生越獄不好想,思考如何不會越獄。
若第1個犯人信仰某種宗教,一共m個選擇。第2個則只有m-1個選擇,往後均為m-1個選擇。
易得出結論,答案是:mn
−m∗(
m−1)
n−1
快速冪即可。
**:
#include
#include
#include
#include
using namespace std;
typedef long
long ll;
const ll mod=100003;
ll ksm(ll a,ll b)
return ans;
}int main()
/*g++ 越獄.cpp -o 越獄.exe -wall
*/
BZOJ 1008 越獄(組合數學)
思路 首先全部情況有m n種,不滿足題意的情況有m m 1 n 1 種情況,然後快速冪就好啦 include includeusing namespace std define ll long long define mod 100003 ll powmod ll a,ll b return ans...
BZOJ 1008 越獄(組合數學)
description 監獄有連續編號為 1.n 1.n的 n n 個房間,每個房間關押乙個犯人,有 m role presentation style position relative m m種宗教,每個犯人可能信仰其中一種。如果 相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生...
bzoj1008 越獄 組合數學
這個題還是很簡單的,一共有m n種情況,只要減去不可能發生越獄的情況,就是可能發生越獄的情況。不可能發生越獄的情況 第乙個犯人有m種宗教選擇,第二個犯人有m 1種宗教選擇 因為要與相鄰的犯人不一樣 第三個犯人也有m 1種宗教選擇,一直到第n個犯人也有m 1種宗教選擇,所以一共有m m 1 n 1 所...