题目传送门。

非常简单的组合数学题。

首先从 \(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. 拦截烂SQL,解读GaussDB(DWS)查询过滤器过滤规则原理

    本文分享自华为云社区<GaussDB(DWS)查询过滤器过滤规则原理与使用介绍>,作者: 清道夫. 1. 前言 适用版本:[9.1.0.100(及以上)] 查询过滤器在9.1.0.100之 ...

  2. UDP与TCP+JAVA相关理论

    相关知识 目录 相关知识 UDP UDP认识 UDP的特点(与TCP相比) UDP网络Socket编程(Java实现) 1.创建客户端 2.客户端图形界面 TCP Socket编程通信 JAVA 基础 ...

  3. 9.4java考试订正

    import java.util.Scanner; public class viovo { static int number = 5;//五个商品信息 static oppo[] s = new ...

  4. Dotnetbar自定义DateTimeInput(时间)控件的显示格式,使其同时显示日期和时间

    DateTimeInput控件已有的几种格式可以在Format属性中选择: 但这几种格式仍无法满足我的要求怎么办? 例如想将显示格式定为类似这样的格式:2010-06-11 20:02:52,两步搞定 ...

  5. C# .Net FrameWork3.5中异步HTTP请求时,由于安全协议的问题System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)方法抛出“基础连接已经关闭: 发送时发生错误”的解决办法

    现象描述: C# .Net FrameWork3.5中异步HTTP请求时,由于安全协议的问题System.Net.HttpWebRequest.EndGetResponse(IAsyncResult ...

  6. 即时通讯技术文集(第44期):微信、QQ技术精华合集(Part1) [共14篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第44 期. [-1-]  微信朋友圈千亿访问量背后的技术挑战和实践总结 [链接] http:/ ...

  7. JVM实战—10.MAT的使用和JVM优化总结

    大纲 1.线上大促活动导致的老年代内存泄漏和FGC(MAT分析出本地缓存没处理好) 2.百万级数据误处理导致频繁FGC(大数据量加载到内存处理 + String.split()) 3.JVM运行原理和 ...

  8. 内存吞金兽(Elasticsearch)的那些事儿 -- 写入&检索原理

    系列目录 内存吞金兽(Elasticsearch)的那些事儿 -- 认识一下 内存吞金兽(Elasticsearch)的那些事儿 -- 数据结构及巧妙算法 内存吞金兽(Elasticsearch)的那 ...

  9. 控制反转(Inversion of Control,IoC)

    依赖注入(Dependency Injection,DI)和控制反转(Inversion of Control,IoC)是软件工程中两个相关但不同的概念.它们都旨在提高代码的模块化.可维护性和可测试性 ...

  10. IdentityServer网页登陆-登陆原理

    前言 现代程序开发中身份验证.授权是一件非常非常复杂的事情(各种登陆方式.各种授权需求.各种跳转跳.各种加解密,搞得得头皮发麻),因为事情本身复杂,所以没把这件事理清楚之前,无论你用什么语言.什么框架 ...