洛谷P11250 [GESP202409 八级] 手套配对 题解
题目传送门。
非常简单的组合数学题。
首先从 \(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 八级] 手套配对 题解的更多相关文章
- 洛谷P1854 花店橱窗布置 分析+题解代码
洛谷P1854 花店橱窗布置 分析+题解代码 蒟蒻的第一道提高+/省选-,纪念一下. 题目描述: 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定 ...
- HAOI2006 (洛谷P2341)受欢迎的牛 题解
HAOI2006 (洛谷P2341)受欢迎的牛 题解 题目描述 友情链接原题 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之 ...
- 洛谷P3412 仓鼠找$Sugar\ II$题解(期望+统计论?)
洛谷P3412 仓鼠找\(Sugar\ II\)题解(期望+统计论?) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327573 原题链接:洛谷P3412 ...
- 洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速$dp\&Floyd$)
洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速\(dp\&Floyd\)) 标签:题解 阅读体验:https://zybuluo.com/Junl ...
- BZOJ4946 & 洛谷3826 & UOJ318:[NOI2017]蔬菜——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4946 https://www.luogu.org/problemnew/show/P3826 ht ...
- 洛谷1578:[WC2002]奶牛浴场——题解
https://www.luogu.org/problemnew/show/P1578#sub 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建 ...
- 洛谷P2460 [SDOI2007]科比的比赛(题解)(贪心+搜索)
科比的比赛(题解)(贪心+搜索) 标签:算法--贪心 阅读体验:https://zybuluo.com/Junlier/note/1301158 贪心+搜索 洛谷题目:P2460 [SDOI2007] ...
- 洛谷 P1146 【硬币翻转】题解
很久很久之前做过的一道题 翻n-1枚硬币,就是有一枚不翻,也可以理解为翻一枚 直接上程序,看程序说话 #include<iostream> using namespace std; ; b ...
- 洛谷P1972 [SDOI2009]HH的项链 题解
[SDOI2009]HH的项链 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不 ...
- 洛谷 p1352 没有上司的舞会 题解
P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...
随机推荐
- 2024年1月Java项目开发指南16:用户自由选择字段查询、是否模糊查询
我们希望用户可以自己控制是否要模糊查询 用户可以自由的选择字段去查询. 如上图,我在前端页面准备了 多选框:决定是否模糊查询.(True or False) 下拉选择框:决定要查询关键词的所属字段 输 ...
- 【pygame】Python小游戏开发之看代码学编程
话说我学习的时候,英文文档难以理解,中文文档杂乱无章,最终还是觉得,还不如直接看代码学习. 下面是我学习过程中写的代码,注释写的很详细,我想会帮助你理解的 pip install pygame 1.游 ...
- Fastadmin框架,服务器搭建环境
FastAdmin 基于ThinkPHP和Bootstrap的极速后台开发框架 https://www.fastadmin.net 安装node.js 1.获取node.js资源 V8.x: curl ...
- Python 进阶:深入理解 import 机制与 importlib 的妙用
大家好,今天我们来深入探讨 Python 中的导入机制和 importlib 模块.相信不少朋友和我一样,平时写代码时可能只用过最基础的 import 语句,或者偶尔用 importlib.impor ...
- JVM实战—11.OOM的原因和模拟以及案例
大纲 1.线上系统突然由于OOM内存溢出挂掉 2.什么是内存溢出及哪些区域会发生内存溢出 3.Metaspace如何因类太多而发生内存溢出 4.无限制调用方法如何让线程的栈内存溢出 5.对象太多导致堆 ...
- Mybatis-Plus 多租户模式忽略某个方法
Mapper 类方法添加注解: @InterceptorIgnore(tenantLine = "true") 亲测有效.
- Dynaimc CRM查找字段自定义过滤视图
实现方式参考官方文档提供的Xrm.Page.getControl(arg).addCustomView(viewId, entityName, viewDisplayName, fetchXml, l ...
- (原创)[开源][.Net Standard 2.0] SimpleMMF (进程间通信框架)更新 v1.1,极低CPU占用
一.前言 在上一篇 (原创)[.Net] 进程间通信框架(基于共享内存)--SimpleMMF 中,发布了v1.0版,最大的问题是:CPU占用较高,至少40-50%. 这既与我的开发水平有关,也与Si ...
- dart中Map类型详解
Map是什么 map类型的数据都是由key和value两个值组成, key是唯一的,value不必唯一,读写数据都是通过key进行. key和value可以是任意类型数据. Map的基本使用 01== ...
- 手把手教你编写自定义Categraf插件
本文分享自天翼云开发者社区<手把手教你编写自定义Categraf插件>,作者:任****佳 Categraf 是一个监控采集 Agent,类似 Telegraf.Grafana-Agent ...