今年的臺大電資學院二階筆試考題有一題是這樣的:
有 $1$ 到 $30$ 的數字各一個,有多少種選 $3$ 個數字的方法使得總和是 $30$ 的倍數?
想當然耳,不太會數學的 FHVirus
當然沒有成功做出正確答案。為了復仇,他決定在校內賽出一題這樣的題目來搞你:
有 $1$ 到 $N$ 的數字各一個,有多少種選 $K$ 個數字的方法使得總和是 $N$ 的倍數?
第一行有一個數 $T$ ,接下來有 $T$ 行,每行有兩個整數 $N, K$ ,意義如題敘所述。
保證對於所有的測資, $1 \le K \le N \le 10 ^ 9, \sum K \le 100$ 。
對於每一組 $(N, K)$ ,輸出一個整數,代表答案模 $10 ^ 9 + 7$ 的餘數。
特別注意,儘管範測會不會過也可以拿到一些分數。
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0 | 範例測資 | 0 |
2 | 1~3 | $K=1$ | 1 |
3 | 4~6 | $K=2$ | 2 |
4 | 7~9 | $K=3, \sum N \le 500$ | 3 |
5 | 10~12 | $K=4, \sum N \le 100$ | 4 |
6 | 7~9, 13~15 | $K=3, \sum N \le 3000$ | 5 |
7 | 7~9, 13~18 | $K=3$ | 6 |
8 | 10~12, 19~21 | $K=4, \sum N \le 3000$ | 10 |
9 | 7~15, 19~24 | $\sum N \le 3000$ | 28 |
10 | 0~29 | 無額外限制 | 41 |