LOJ2361 NOIP2016 組合數問題

2021-08-28 19:41:58 字數 2022 閱讀 3731

題目描述

組合數表示的是從 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的時間內覆蓋所有節點 上面已經有了乙個基本的貪心 乙個軍隊往根節點走是更優的 但是沒有軍隊...