bzoj1008 越獄 組合數學

2021-08-20 17:19:36 字數 433 閱讀 3352

這個題還是很簡單的,一共有m^n種情況,只要減去不可能發生越獄的情況,就是可能發生越獄的情況。

不可能發生越獄的情況:第乙個犯人有m種宗教選擇,第二個犯人有m-1種宗教選擇(因為要與相鄰的犯人不一樣),第三個犯人也有m-1種宗教選擇,一直到第n個犯人也有m-1種宗教選擇,所以一共有m*(m-1)^(n-1)。

所以可能發生越獄的情況:mn-m*(m-1)(n-1)=m[m(n-1)-(m-1)(n-1)]

直接快速冪吧,很簡單。

#includeusing namespace std;

typedef long long ll;

const ll mod=100003;

inline ll mypow(ll a,ll b)

return sum;

}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...

BZOJ 1008 越獄(組合數學)

description 監獄有連續編號為 1.n 1.n的 n n 個房間,每個房間關押乙個犯人,有 m role presentation style position relative m m種宗教,每個犯人可能信仰其中一種。如果 相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生...