news 2026/4/12 22:45:21

GESP认证C++编程真题解析 | P11250 [GESP202409 八级] 手套配对

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GESP认证C++编程真题解析 | P11250 [GESP202409 八级] 手套配对

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:P11250 [GESP202409 八级] 手套配对 - 洛谷

【题目描述】

小杨有n nn对不同的手套,每对手套由左右各一只组成。

小杨想知道从中取出m mm只手套,m mm只手套恰好包含k kk对手套的情况有多少种。

小杨认为两种取出的情况不同,当且仅当两种情况取出的手套中存在不同的手套(同一对手套的左右手也视为不同的手套)。

【输入】

本题单个测试点内有多组测试数据

第一行包含一个正整数t tt,代表测试用例组数。

接下来是t tt组测试用例。对于每组测试用例,一共一行。

第一行包含三个正整数n , m , k n,m,kn,m,k,代表手套数量,取出的手套数和目标对数。

【输出】

对于每组测试数据,输出一个整数,代表可能的情况数量对10 9 + 7 10^9+7109+7取模的结果。

【输入样例】

2 5 6 2 5 1 5

【输出样例】

120 0

【算法标签】

《洛谷 P11250 手套配对》 #组合数学# #排列组合# #GESP# #2024#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong// 将int定义为long long类型constintN=1005,mod=1e9+7;intt;// 测试用例数量intn,m,k,ans;// n: 总数, m: 选择数量, k: 特定对数, ans: 答案intc[N][N];// 组合数C(n, m)数组intd[N];// 2的幂次数组// 初始化组合数C(n, m) = C(n-1, m-1) + C(n-1, m)voidinit(){c[0][0]=1;// C(0,0) = 1for(inti=1;i<=1000;i++){for(intj=0;j<=i;j++){if(j==0)// C(i,0) = 1{c[i][j]=1;}else{// 组合数递推公式c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;}}}}// 初始化2的幂次数组voidinit2(){d[0]=1;// 2^0 = 1for(inti=1;i<=1000;i++){d[i]=d[i-1]*2%mod;// 2^i = 2^(i-1) * 2}}signedmain()// 由于定义了#define int long long,需要使用signed main{cin>>t;// 预处理组合数和2的幂init();init2();while(t--){cin>>n>>m>>k;// 条件检查:必须满足的基本限制// 1. m >= 2k: 至少需要2k个元素来形成k对// 2. m - 2k <= n - k: 剩余选择的元素不能超过可用的元素if(m<2*k||m-2*k>n-k){cout<<0<<endl;}else{// 计算答案公式:C(n,k) * C(n-k, m-2k) * 2^(m-2k)intans=((c[n][k]*c[n-k][m-2*k])%mod*d[m-2*k])%mod;cout<<ans<<endl;}}return0;}

【运行结果】

2 5 6 2 120 5 1 5 0
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 12:46:54

大模型推理黑盒揭开,Open-AutoGLM的3大核心机制你了解吗?

第一章&#xff1a;Open-AutoGLM底层原理 Open-AutoGLM 是一个基于自回归语言模型的自动化推理框架&#xff0c;其核心设计融合了图神经网络&#xff08;GNN&#xff09;与大规模语言模型&#xff08;LLM&#xff09;的优势&#xff0c;旨在实现结构化知识与自然语言推理的深度…

作者头像 李华
网站建设 2026/4/10 1:54:37

【vLLM与Open-AutoGLM融合实战】:解锁大模型推理加速的5大核心技巧

第一章&#xff1a;vLLM与Open-AutoGLM融合概述在大规模语言模型&#xff08;LLM&#xff09;推理优化与自动化机器学习&#xff08;AutoML&#xff09;快速发展的背景下&#xff0c;vLLM 与 Open-AutoGLM 的融合为高效、智能的模型部署提供了创新路径。vLLM 以其高效的内存管理…

作者头像 李华
网站建设 2026/4/8 16:47:09

如何用TensorFlow优化搜索引擎排名?

如何用TensorFlow优化搜索引擎排名&#xff1f; 在每天产生数亿条新内容的互联网时代&#xff0c;用户早已不再满足于“关键词匹配”的粗放式搜索结果。他们希望搜索引擎能像一个真正理解自己意图的助手——输入“适合夏天穿的轻便运动鞋”&#xff0c;就能看到透气、减震、价…

作者头像 李华
网站建设 2026/4/4 3:37:46

Open-AutoGLM一键部署方案曝光(限时开源配置文件)

第一章&#xff1a;Open-AutoGLM一键部署方案概述Open-AutoGLM 是一个面向大语言模型自动化推理与生成任务的开源部署框架&#xff0c;旨在降低开发者在本地或云端快速搭建 GLM 系列模型服务的门槛。该方案通过容器化封装与自动化脚本集成&#xff0c;实现从环境配置、模型下载…

作者头像 李华
网站建设 2026/4/12 3:53:58

【Linux系统优化新突破】:Open-AutoGLM配置全指南,提升AI推理效率90%+

第一章&#xff1a;Open-AutoGLM与Linux系统优化的融合前景将大型语言模型与底层操作系统深度结合&#xff0c;正成为提升计算效率与资源调度智能化的重要方向。Open-AutoGLM作为一款具备自主推理与代码生成能力的开源语言模型&#xff0c;其与Linux系统优化机制的融合展现出广…

作者头像 李华
网站建设 2026/4/9 23:49:24

TensorFlow在社交媒体舆情监控中的角色

TensorFlow在社交媒体舆情监控中的角色 在微博热搜瞬息万变、一条短视频评论可能引爆全网情绪的今天&#xff0c;如何从亿万条嘈杂的信息流中精准捕捉公众的真实态度&#xff0c;已经成为品牌公关、政府治理乃至金融市场决策的关键能力。传统的关键词匹配早已力不从心——当用户…

作者头像 李华