P2822 組合數問題
P2822 組合數問題
- 標簽:NOIp提高組 2016 雲端↑
- 難度: 普及+/提高
- 時空限制: 1s / 512MB
題目描述
組合數表示的是從n個物品中選出m個物品的方案數。舉個例子,從(1,2,3) 三個物品中選擇兩個物品可以有(1,2),(1,3),(2,3)這三種選擇方法。根據組合數的定 義,我們可以給出計算組合數的一般公式:
其中n! = 1 × 2 × · · · × n
小蔥想知道如果給定n,m和k,對於所有的0 <= i <= n,0 <= j <= min(i,m)有多少對 (i,j)滿足
輸入輸出格式
輸入格式:第一行有兩個整數t,k,其中t代表該測試點總共有多少組測試數據,k的意義見 【問題描述】。
接下來t行每行兩個整數n,m,其中n,m的意義見【問題描述】。
輸出格式:t行,每行一個整數代表答案。
輸入輸出樣例
輸入樣例#1:1 2 3 3輸出樣例#1:
1輸入樣例#2:
2 5 4 5 6 7輸出樣例#2:
0 7
說明
【樣例1說明】
在所有可能的情況中,只有是2的倍數。
【子任務】
思路分析:
這個題第一反應50分穩了。打打暴力折騰50分出來。n=1的點AC其他TLE...
樣例一好像沒什麽用處。。。所以看看樣例二能搞出什麽東西來。
手推一下樣例二:
\begin{matrix}
C^0_0&&&&&\\
C^0_1&C^1_1&&&&\\
C^0_2&C^1_2&C^2_2&&&\\
C^0_3&C^1_3&C^2_3&C^3_3&&\\
C^0_4&C^1_4&C^2_4&C^3_4&C^4_4&\\
C^0_5&C^1_5&C^2_5&C^3_5&C^4_5&C^5_5
套一下公式。
忽略m或n等於0的情況,這個時候組合數無意義。
結合上面的矩陣:
\begin{matrix}
1&0&0&0&0&0\\
2&1&0&0&0&0\\
3&3&1&0&0&0\\
4&6&4&1&0&0\\
5&10&10&5&1&0\\
6&15&20&15&6&1
\end{matrix}
可以看出這是一個楊輝三角。楊輝三角的一般遞推式:
\begin{equation*}f[i][j]=f[i-1][j-1]+f[i-1][j]\end{equation*}
楊輝三角的初始化:
\begin{equation*}f[i][1]=i,f[i][i]=1\end{equation*}
P2822 組合數問題