題目描述
組合數學是數學的重要組成部分,是一門研究離散物件的科學,它主要研究滿足一定條件的組態(也稱組合模型)的存在、計數以及構造等方面的問題,組合數學的主要內容有組合計數、組合設計、組合矩陣、組合優化等,
隨著計算機科學的日益發展,組合數學的重要性也日漸凸顯,因為計算機科學的核心內容是使用演算法處理離散資料,
今天我們來研究組合數學中的一個有趣的問題,也是一個簡單的計數問題:
從一副含有 nn 張的撲克牌(每張撲克牌都不相同)中,分給 mm 個人,第 ii 個人得到 a_iai? 張牌,求一共有幾種分法,這個數可能非常大,請輸出此數模 1000710007 后的結果,
輸入格式
第一行兩個整數為 n,mn,m,
第二行 mm 個整數 a_iai?,
輸出格式
此數模 1000710007 后的結果,
輸入輸出樣例
輸入 #15 2 3 1輸出 #1
20輸入 #2
20 19 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1輸出 #2
8707
說明/提示
對于 50\%50% 的資料:M=1M=1,
對于 100\%100% 的資料:1 \leq n \leq 10^41≤n≤104,1 \leq m \leq 1001≤m≤100,0 \leq a_i \leq 1000≤ai?≤100,
決議:題目很容易發現用到是組合數和乘法原理,
給第1個人分配的方法數為:c(n,a[1]);
給第2個人分配的方法數為:
