題目描述
組合數表示的是從 n n n 個物品中選出 m m m 個物品的方案數。舉個例子,從 (1,2,3) (1, 2, 3) (1,2,3) 三個物品中選擇兩個物品可以有 (1,2) (1, 2) (1,2),(1,3) (1, 3) (1,3),(2,3) (2, 3) (2,3) 這三種選擇方法。
根據組合數的定義,我們可以給出計算組合數的一般公式:
c nm
=n!m
!(n−
m)
!c_n ^ m = \frac
cnm=m
!(n−
m)!n
!其中n!=
1×2×
⋯×
nn! = 1 \times 2 \times \cdots \times n
n!=1×2
×⋯×n
。小蔥想知道如果給定n
nn,m
mm和k
kk,對於所有的0≤i
≤n
0 \leq i \leq n
0≤i≤n,0≤j
≤min(
i,m)
0 \leq j \leq \min(i, m)
0≤j≤
min(i,
m)有多少對(i,
j)
(i, j)
(i,j
)滿足cij
c_i ^ j
cij
是k
kk的倍數。
輸入格式
第一行有兩個整數t
tt,k
kk,其中t
tt代表該測試點總共有多少組測試資料,k
kk的意義見 「題目描述」。
接下來t
tt行每行兩個整數n
nn,m
mm,其中n
nn,m
mm的意義見「題目描述」。
輸出格式
t
tt行,每行乙個整數代表所有的0≤i
≤n
0 \leq i \leq n
0≤i≤n,0≤j
≤min(
i,m)
0 \leq j \leq \min(i, m)
0≤j≤
min(i,
m)有多少對(i,
j)
(i, j)
(i,j
)滿足cij
c_i ^ j
cij
是k
kk的倍數。
樣例樣例輸入 1
1 23 3
樣例輸出 1
樣例輸入 2
2 54 5
6 7樣例輸出 207
資料範圍與提示
3 ≤n
,m
≤2000,2
≤k≤21
,1≤t
≤10000
3 \leq n, m \leq 2000, 2 \leq k \leq 21, 1 \leq t \leq 10000
3≤n,m≤
2000
,2≤k
≤21,
1≤t≤
1000
0 題解n,m
n,mn,
m這麼小,模數又是隨便給的,自然想到o(n
2)
o(n^2)
o(n2
)預處理組合數。
只有模意義下為0
00的項才有貢獻,於是我們把每個項的貢獻推出來,再o(n
2)
o(n^2)
o(n2
)做兩次字首和,就能完美統計了。
**
#include
using
namespace std;
const
int m=
2005
;int c[m]
[m],t,k;
voidin(
)voidac(
)int
main()
noip普及2016總結
事實上,我在去年也報了noip的普及組.奈何當年太稚嫩,不懂騙分,只有210.以上都是前話,滿滿的都是不堪回首的黑歷史.1.概述 考前算是做了比較充分的準備吧,至少在每天晚自習都會抽幾分鐘的時間複習一下 事實上功課也並沒有怎麼耽誤 然後就是臨場發揮還是較好吧,可以根據自己的能力與資料的大小寫出合適的...
Loj 2568 APIO2016 烟花表演
烟花表演是最引人注目的節日活動之一。在表演中,所有的烟花必須同時 為了確保安全,烟花被安置在遠離開關的位置上,通過一些導火索與開關相連。導火索的連線方式形成一棵樹,烟花是樹葉,如圖 1所示。火花從開關出發,沿導火索移動。每當火花抵達乙個分叉點時,它會擴散到與之相連的所有導火索,繼續燃燒。導火索燃燒的...
LOJ 2607 NOIP2012 疫情控制
好厲害的一道題 loj較官方資料加強了好幾倍 顯然,乙個軍隊越靠根節點,能覆蓋到的節點越多 對答案一定是最優的,因為從這裡經過的路徑會更多 二分乙個答案mid midmi d,判斷能不能在mid midmi d的時間內覆蓋所有節點 上面已經有了乙個基本的貪心 乙個軍隊往根節點走是更優的 但是沒有軍隊...