description
監獄有連續編號為
1...
n 1...n的
n n
個房間,每個房間關押乙個犯人,有
m' role="presentation" style="position: relative;">m
m種宗教,每個犯人可能信仰其中一種。如果
相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄
input
輸入兩個整數m,
n.1≤m
≤108,
1≤n≤
1012
m ,n
.1≤m≤
108,1
≤n≤10
12output
可能越獄的狀態數,模
100003
100003
取餘sample input
2 3sample output
solution
總情況mn
m
n種,不合法情況即為相鄰房間信仰均不同,第乙個房間
m m
種可能,之後每個房間的犯人由於都不能和前乙個房間犯人的信仰相同,故只有m−
1' role="presentation" style="position: relative;">m−1
m−1種可能,故不合法方案數即為m⋅
(m−1
)n−1
m ⋅(
m−1)
n−
1,兩者做差即為答案
code
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
typedef
long
long ll;
const ll mod=100003;
ll pow(ll a,ll b)
return ans;
} int main()
bzoj1008 越獄 組合數學
監獄有連續編號為1 n的n個房間,每個房間關押乙個犯人,有m種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄 輸入兩個整數m,n.1 m 10 8,1 n 10 12 可能越獄的狀態數,模100003取餘 2 366種狀態為 000 001 ...
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...
bzoj1008 越獄 組合數學
這個題還是很簡單的,一共有m n種情況,只要減去不可能發生越獄的情況,就是可能發生越獄的情況。不可能發生越獄的情況 第乙個犯人有m種宗教選擇,第二個犯人有m 1種宗教選擇 因為要與相鄰的犯人不一樣 第三個犯人也有m 1種宗教選擇,一直到第n個犯人也有m 1種宗教選擇,所以一共有m m 1 n 1 所...