GESP认证C++编程真题解析 | 202312 八级

news/2026/1/18 22:14:38/文章来源:https://www.cnblogs.com/guolianggsta/p/19499326

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

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

适合人群:

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

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


编程题

P10112 奖品分配

【题目来源】

洛谷:[P10112 GESP202312 八级] 奖品分配 - 洛谷

【题目描述】

班上有 \(N\) 名同学,学号从 \(0\)\(N-1\)。有 \(M\) 种奖品要分给这些同学,其中,第 \(i\) 种奖品总共有 \(a_i\) 个 (\(i=0,1, \cdots ,M-1\))。

巧合的是,奖品的数量不多不少,每位同学都可以恰好分到一个奖品,且最后剩余的奖品不超过 \(1\) 个(即:\(N\le a_0+a_1+ \cdots +a_{M-1}\le N+1\))。

现在,请你求出每个班级礼物分配的方案数,所谓方案,指的是为每位同学都分配一个种类的奖品。

只要有一位同学获得了不同种类的奖品,即视为不同的方案。方便起见,你只需要输出方案数对 \(10^{9}+7\) 取模后的结果即可。

共有 \(T\) 个班级都面临着奖品分配的问题,你需要依次为他们解答。

【输入】

第一行一个整数 \(T\),表示班级数量。

接下来 \(T\) 行,每行若干用单个空格隔开的正整数。首先是两个正整数\(N,M\),接着是 \(M\) 个正整数 \(a_0,a_1...a_{M-1}\)。保证 $N \le a_0+a_1+\cdots+a_{M-1} \le N+1 $。

【输出】

输出 \(T\) 行,每行一个整数,表示该班级分配奖品的方案数对 \(10^{9}+7\) 取模的结果。

【输入样例】

3
3 2 1 2
3 2 1 3
5 3 1 3 1

【输出样例】

3
4
20

【算法标签】

《洛谷 P10112 奖品分配》 #数学# #组合数学# #排列组合# #GESP# #2023#

【代码详解】

#include <bits/stdc++.h>
using namespace std;#define int long long  // 将int重定义为long long
const int N = 1005;     // 最大数组大小
const int mod = 1e9 + 7;  // 模数
int T, n, m;            // T: 测试用例数, n: 总位置数, m: 颜色种类数
int a[N];               // a[i]: 第i种颜色的数量
int c[N][N];            // 组合数C[n][m]
int ans, sum;           // ans: 答案, sum: 所有颜色的总数// 初始化组合数表(杨辉三角)
void init()
{for (int i = 0; i < N; i++){for (int j = 0; j <= i; j++){if (j == 0){c[i][j] = 1;  // C(i,0)=1}else{// 组合数递推公式:C(i,j)=C(i-1,j)+C(i-1,j-1)c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;}}}
}signed main()  // 因为#define int long long,所以用signed main
{// 预处理组合数init();// 输入测试用例数cin >> T;while (T--){// 输入总位置数n和颜色种类数mcin >> n >> m;// 初始化总和sum = 0;// 输入每种颜色的数量for (int i = 1; i <= m; i++){cin >> a[i];sum += a[i];  // 计算颜色总数}// 初始化答案为1ans = 1;int t;  // 可用位置数// 计算初始可用位置数if (sum > n){t = n + 1;  // 如果颜色总数超过n,则t=n+1}else{t = n;  // 否则t=n}// 计算排列方案数for (int i = 1; i <= m; i++){// 调试输出// cout << "t a[i] " << t << ' ' << a[i] << endl;// 从t个位置中选择a[i]个位置放第i种颜色ans = (ans * c[t][a[i]]) % mod;// 减少可用位置数t -= a[i];}// 输出结果cout << ans << endl;}return 0;
}

【运行结果】

3
3 2 1 2
3
3 2 1 3
4
5 3 1 3 1
20

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1179600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用llama_index 来实现一个RAG

环境uv ollamaRAG 的二个阶段 索引阶段 (Indexing Phase) 检索信息增强,让大模型参考本地的信息/文档,提高回答的质量加载数据 Indexing 文档加载,分割,将加载的 文本 解析成一系列 Nodes 生成 对每个node ,生成向量…

小程序毕设项目:基于springboot的保护濒危动物公益网站系统(源码+文档,讲解、调试运行,定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【课程设计/毕业设计】基于springboot的保护濒危动物公益网站系统保护动物网站、濒危动物保护【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

小程序计算机毕设之基于springboot的保护濒危动物知识科普、活动发布、在线捐赠公益网站系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【毕业设计】基于springboot的保护濒危动物公益网站系统(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

666666999999 - 教程

666666999999 - 教程2026-01-18 22:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-f…

亲测好用2026研究生AI论文网站TOP10:开题文献综述全攻略

亲测好用2026研究生AI论文网站TOP10&#xff1a;开题文献综述全攻略 2026年研究生AI论文写作工具测评&#xff1a;选对工具&#xff0c;事半功倍 在学术研究日益数字化的今天&#xff0c;AI论文写作工具已成为研究生们不可或缺的得力助手。然而&#xff0c;面对市场上琳琅满目的…

AionUi:与AI终端代理协作的跨平台桌面界面

✨ 项目概述 AionUi 是一个基于 Electron 框架构建的跨平台桌面应用&#xff0c;旨在为用户提供一个统一、可视化的图形界面&#xff0c;用于与多种 AI 终端代理&#xff08;例如 Gemini CLI、Claude Code、Qwen Code、Goose CLI、Auggie 等&#xff09;进行协作。它遵循模块化…

HarmonyOS智慧农业管理应用开发教程--高高种地---第1篇:项目初始化与环境搭建

第1篇&#xff1a;项目初始化与环境搭建 教程目标 通过本篇教程&#xff0c;你将学会&#xff1a; 安装和配置 DevEco Studio 开发环境配置 HarmonyOS SDK创建 HarmonyOS 应用项目理解项目结构配置应用权限 完成本教程后&#xff0c;你将能够成功创建并运行一个基础的 Harm…

C++11的一些特性

1. 左值引用 vs 右值引用左值引用定义&#xff1a;给左值取别名&#xff0c;用 &表示。特点&#xff1a;能获取地址&#xff0c;有持久状态可出现在赋值符号左边或右边主要作用是减少拷贝&#xff0c;提高效率int a 10; int& ref_a a; // 左值引用 const int&…

非标自动化设备工厂10个SolidWorks研发设计如何共享一台服务器的资源和算力 - 指南

非标自动化设备工厂10个SolidWorks研发设计如何共享一台服务器的资源和算力 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…

Playwright数据库断言:测试前后数据验证

在自动化测试中&#xff0c;我们常常会遇到这样的场景&#xff1a;测试一个用户注册功能&#xff0c;接口返回了成功&#xff0c;但你真的确定用户数据正确写入数据库了吗&#xff1f;或者测试一个删除功能后&#xff0c;如何验证数据确实从数据库中移除了&#xff1f;这就是数…

GESP认证C++编程真题解析 | 202309 一级

​欢迎大家订阅我的专栏:算法题解:C++与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的…

docker 搭建canal - BeYourSelf

一、参考文献Docker 安装 canal 详细步骤 乌班图安装java二、环境乌班图操作系统 Docker 29.1.4 Java 11.0.29 rabbitMQ三、前期准备安装Java11 # 先更新源 sudo apt-get update# 安装java11 sudo apt-get install op…

GESP认证C++编程真题解析 | 202309 二级

​欢迎大家订阅我的专栏:算法题解:C++与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的…

2026年中国985高校人工智能专业综合实力十强排名

基于2025-2026年度教育部学科评估情况、CSRankings全球计算机科学排名、U.S.News世界大学学科排名及各高校国家级实验室配置&#xff0c;我们对国内985高校在人工智能领域的综合竞争力进行了深度梳理。第1名&#xff1a;清华大学 作为国内人工智能领域的“领头羊”&#xff0c;…

js函数防抖

1.0 js函数防抖 function debounce(fn, delay = 1000) {let timerId;return function (...args) {clearTimeout(timerId);timerId = setTimeout(() => {fn.apply(this, args);}, delay);}; }2.0 vue自定义ref防抖 i…

LeeCode_17 电话号码的字母组合

17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1: 输入:digits =…

Selenium 从环境搭建到 Web 自动化实战

Selenium 是目前最流行的 Web 自动化测试工具,支持 Chrome、Firefox 等主流浏览器,能模拟人工操作(点击、输入、跳转)实现网页自动化,广泛应用于接口测试、数据爬取、自动化部署等场景。本文从零基础入门,手把手…

通信原理篇---PAM与PCM

解释 PAM&#xff08;脉冲幅度调制&#xff09; 和 PCM&#xff08;脉冲编码调制&#xff09; 的区别。1. 基本概念PAM&#xff1a;模拟调制方式&#xff0c;用脉冲序列的幅度来模拟连续信号的瞬时值&#xff0c;仍然是模拟信号。PCM&#xff1a;数字调制方式&#xff0c;先对模…