GESP编程共123题,本题是整站第1440题,已经有人完成了本题,加油!
小杨有 n 对不同的手套,每对手套由左右各一只组成。
小杨想知道从中取出 m 只手套,恰好包含 k 对手套的情况有多少种。
小杨认为两种取出的情况不同,当且仅当两种情况取出的手套中存在不同的手套(同一对手套的左右手也视为不同的手套)。
本题单个测试点内由多组测试数据。第一行是一个整数 t,表示测试用例数量。接下来是 t 组测试用例,每组一行。
每组数据只有一行三个正整数 n,m,k,表示手套数量、取出的手套数和目标对数。
对每组数据,输出一行一个整数表示答案对 10^9+7 取模的结果。
输入 #1
2 5 6 2 5 1 5
输出 #1
120 0
子任务 | 占比 | t | n | m | k |
---|---|---|---|---|---|
1 | 30% | ≤5 | 1000 | ≤3 | =1 |
2 | 30% | ≤5 | ≤5 | ≤10 | ≤5 |
3 | 40% | 10^5 | 1000 | 2000 | 2000 |
对全部的测试数据,保证 1≤t≤10^5,1≤n≤1000,1≤m≤2×n,1≤k≤n。
【题目大意】从n对手套中(左右手不同)选择m只,恰好有k只的方案数。
【考纲知识点】数论:排列组合
【解题思路】考虑从n对手套中选出k对手套,有种选择,此时已经用掉了2k的次数,还剩下m-2k次,这些次数考虑从剩余的n-k双手套中,每个手套选一只,每种手套有2种选择,因此有
种情况。
因此答案ans=
由于数据量只有10三次方,因此可以杨辉三角,2的次幂取模可以直接递推求解,如果数据范围达到百万级别,则需要用逆元求解。
参考代码:
杨辉三角:
n,m,k百万级别数据范围的
参考代码(逆元):
本站题目仅供学习,GESP版权归CCF所有,如有侵权请联系删除。站长陈老师QQ及微信:208234。