题目传送门。

非常简单的组合数学题。

首先从 \(n\) 对手套中恰好选出 \(k\) 对手套的方案数为 \(C_n^k\),然后由于我们要取出 \(m\) 只手套,那么取了 \(k\) 对手套后还要取 \(m-2k\) 只手套,我们得保证后面取的这 \(m-2k\) 对手套配不出一对手套,根据鸽笼原理,在最坏情况下,我们从 \(n-k\) 对手套中选不超过 \(n-k\) 只手套,是选不出一对手套的,于是我们就按照这种情况算,于是我们得出了 \(C_{n-k}^{m-2k}\),然后由于我们会选到一对手套的左手或右手,所以我们还要乘上 \(2^{m-2k}\),所以最后的答案为 \(C_n^k \times C_{n-k}^{m-2k} \times 2^{m-2k}\)。

至于什么是鸽笼原理,就是比如说班上如果有超过 \(12\) 个人一定有两个人出生月份相同,这就是鸽笼原理,证明也很简单,这里就不多说了。

然后由于这道题 \(1 \le n \le 1000\),直接使用组合数公式 \(C_n^m = C_{n-1}^m+C_{n-1}^{m-1}\),两遍 for 循环就能解决。

哦,当 \(m \le 2k\) 时,无解,因为无法选出 \(k\) 对手套,还有,就是当 \(m-2k>n-k\) 时,根据鸽笼原理很容易得出此时也是无解,配出的手套数量一定大于 \(k\)。但是这个无解情况是不用判断的,因为我们求组合数的数组 \(c\) 是全局数组,系统一开始会全部初始化为 \(0\),这样子当 \(m-2k>n-k\) 时,算出的组合数一定是 \(0\),\(0\) 乘任何数都等于 \(0\),所以不用判断这种情况。

十年 OI 一场空,不开 long long 见祖宗。

计算二的次幂时请使用快速幂或者预处理,不要使用左移或者 pow 函数,否则就会见祖宗!

代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 1e9+7;
const int N = 2e3+5;
int c[N][N],f[N];
signed main()
{
int _;
scanf("%lld",&_);
for(int i = 0;i<=N-5;i++)
{
for(int j = 0;j<=i;j++)
{
c[i][j] = !j?1:(c[i-1][j]+c[i-1][j-1])%mod;
}
}
f[0] = 1;
for(int i = 1;i<=N-5;i++)
{
f[i] = f[i-1]*2%mod;
}
while(_--)
{
int n,m,k;
scanf("%lld %lld %lld",&n,&m,&k);
if(m<2*k)
{
printf("0\n");
continue;
}
printf("%lld\n",c[n][k]*c[n-k][m-2*k]%mod*f[m-2*k]%mod);
}
return 0;
}

洛谷P11250 [GESP202409 八级] 手套配对 题解的更多相关文章

  1. 洛谷P1854 花店橱窗布置 分析+题解代码

    洛谷P1854 花店橱窗布置 分析+题解代码 蒟蒻的第一道提高+/省选-,纪念一下. 题目描述: 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定 ...

  2. HAOI2006 (洛谷P2341)受欢迎的牛 题解

    HAOI2006 (洛谷P2341)受欢迎的牛 题解 题目描述 友情链接原题 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之 ...

  3. 洛谷P3412 仓鼠找$Sugar\ II$题解(期望+统计论?)

    洛谷P3412 仓鼠找\(Sugar\ II\)题解(期望+统计论?) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327573 原题链接:洛谷P3412 ...

  4. 洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速$dp\&Floyd$)

    洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速\(dp\&Floyd\)) 标签:题解 阅读体验:https://zybuluo.com/Junl ...

  5. BZOJ4946 & 洛谷3826 & UOJ318:[NOI2017]蔬菜——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4946 https://www.luogu.org/problemnew/show/P3826 ht ...

  6. 洛谷1578:[WC2002]奶牛浴场——题解

    https://www.luogu.org/problemnew/show/P1578#sub 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建 ...

  7. 洛谷P2460 [SDOI2007]科比的比赛(题解)(贪心+搜索)

    科比的比赛(题解)(贪心+搜索) 标签:算法--贪心 阅读体验:https://zybuluo.com/Junlier/note/1301158 贪心+搜索 洛谷题目:P2460 [SDOI2007] ...

  8. 洛谷 P1146 【硬币翻转】题解

    很久很久之前做过的一道题 翻n-1枚硬币,就是有一枚不翻,也可以理解为翻一枚 直接上程序,看程序说话 #include<iostream> using namespace std; ; b ...

  9. 洛谷P1972 [SDOI2009]HH的项链 题解

    [SDOI2009]HH的项链 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不 ...

  10. 洛谷 p1352 没有上司的舞会 题解

    P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...

随机推荐

  1. nodejs koa2 ocr识别 身份证信息

    1. 安装依赖 npm install baidu-aip-sdk 2.创建AipOcrClient 注:需要到百度api创建应用,拿到所需的APPID/AK/SK https://console.b ...

  2. Nginx make报错处理

    https://blog.csdn.net/zhengdong12345/article/details/130669711 make报错:fatal error:sys/sysctl.h:No su ...

  3. 解决docker 容器设置中文语言包出现的问题_docker

    https://www.anquanclub.cn/5821.html 这篇文章主要介绍了解决docker 容器设置中文语言包出现的问题,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 ...

  4. docker.sock: connect: permission denied 解决

    问题描述xjun@DESKTOP-L2R4GKN:~$ docker run -it hello-worlddocker: Got permission denied while trying to ...

  5. Ubuntu 22.04 LTS 代号已经公布:那就是 Jammy Jellyfish

    Ubuntu 22.04 LTS 代号已在 Ubuntu 开发之家 Launchpad 上公布. 在字母系列中的字母"I"之后,是"J". 因此,Canonic ...

  6. Qt编写物联网管理平台34-地图按钮

    一.前言 地图按钮很常见,这也是用户给钱就干的一个模块.设备现场提供了对应的地图文件,其实就是图片文件,做的简单点就是直接CAD图纸转成jpg,做的精致点就是搞了3D风格的立体样式图片,其实还是图片, ...

  7. Qt编写地图综合应用21-路径规划

    一.前言 近期重新将这个地图综合应用进行大幅度的改进更新升级,包括使用示例也做了非常多的改进和调整,其中就包括路径规划功能,之前只是调用了百度地图的JS交互接口,根据起始点坐标经纬度和结束点坐标经纬度 ...

  8. springboot的yml文件中如何配置redis?

    springboot的yml文件中如何配置redis? 解决方法: spring: #redis配置 redis: database: 0 timeout: 0 # Redis服务器地址 host: ...

  9. PS2021、色环插件Coolorus下载+色环无法拖动问题和没有压感问题的解决

    PS2021+色环插件Coolorus+色环无法拖动问题解决+没有压感问题解决 1.资源下载链接 PS各版本下载: 感谢微博@vposy大佬无私奉献提供的各版本ADOBE软件直装破解: 百度网盘: p ...

  10. Dynamic CRM最常用的3种查询方式

    在crm系统中 接口或者插件中 通常都会有查询的校验 实际上单查询的话 不用crm提供的方式也可以 直接用sql的方式去查,一般涉及到很多表的联动查询比如报表查询时,还是用sql更方便   一.Que ...