problem 1008. – [hnoi2008]越獄
time limit: 1 sec
memory limit: 162 mb
submit: 11735
solved: 5087 [
submit][
status][
discuss]
監獄有連續編號為1…n的n個房間,每個房間關押乙個犯人,有m種宗教,每個犯人可能信仰其中一種。如果
相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄
輸入兩個整數m,n.1<=m<=10^8,1<=n<=10^12
可能越獄的狀態數,模100003取餘
2 36
6種狀態為(000)(001)(011)(100)(110)(111)
[ submit][
status][
discuss]
home
back
一句話題解:先考慮的所有的狀態m^n,然後考慮不越獄的狀態m*(m-1)^(n-1),兩者相減
為什麼寫這種簡單題的題解,因為沒有1a,又死在%上了
an = (power(m,n,mod)-m%mod*power(m-1,n-1,mod)%mod+mod)%mod;
第一遍沒有加mod,m^n%mod以後小於後者
#include
using namespace std;
const int
mod = 100003;
int power(long
long a,long
long b,int p)
return ans;
}long
long n,m;
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種宗教,每個犯人可能信仰其中一種。如果 相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生...