組合數學問題

2021-10-22 23:58:34 字數 685 閱讀 3576

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

輸入兩個整數m,n.1<=m<=10^8,1<=n<=10^12

可能越獄的狀態數,模100003取餘

6種狀態為(000)(001)(011)(100)(110)(111)

輸出時每行末尾的多餘空格,不影響答案正確性

樣例輸入

2 3
樣例輸出

6
第乙個監獄裡的犯人可以有m個宗教選擇,第二個監獄裡的犯人可以有m-1中選擇(保證和第乙個監獄裡的犯人不重複即可),同理,第三個監獄的犯人只需和第二個監獄裡的不一樣,也是m-1個選擇,,,,以此類推,共n個監獄,除第乙個監獄有m個選擇,其餘n-1個監獄只有m-1中選擇,所以m*(m-1)^(n-1),類似於用n種顏料去染m個格仔一般,由於n和m都比較大,所以要借助於快速冪,((m^n)%mod-(m*(m-1)^(n-1))%mod)%mod有可能為負數,要特判,**如下

select code

#includelong long ti(long long x,long long y)

return ans;

}int main()

return 0;

}

組合數學 購票問題

購票問題 題目大意 一張票50元,有n個帶著50元的人和n個帶著100元的人,請問總共有多少種排隊方法使得不會出現購票找不回錢的尷尬局面?輸入樣例 2 輸出樣例 2 這是一類非常有代表性的問題,下面將介紹該問題的5種解法 number 5 暴力列舉 很顯然,要使帶著100元的購票那麼就需要50的去找...

組合數學 求組合數

對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...

組合數學 36軍官問題

據說普魯士的腓特列大帝曾組成一支儀仗隊,儀仗隊共有36名軍官,來自6支部隊,每支部隊中,上校 中校 少校 上尉 中尉 少尉各一名。他希望這36名軍官排成6 6的方陣,方陣的每一行,每一列的6名軍官來自不同的部隊並且軍銜各不相同。令他惱火的是,無論怎麼絞盡腦汁也排不成。後來,他去求教瑞士著名的大數學家...