news 2026/6/10 17:23:25

GESP认证C++编程真题解析 | P11377 [GESP202412 七级] 武器购买

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GESP认证C++编程真题解析 | P11377 [GESP202412 七级] 武器购买

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

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

适合人群:

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

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


【题目来源】

洛谷:P11377 [GESP202412 七级] 武器购买 - 洛谷

【题目描述】

商店里有n nn个武器,第i ii个武器的强度为p i p_ipi,花费为c i c_ici

小杨想要购买一些武器,满足这些武器的总强度不小于P PP,总花费不超过Q QQ,小杨想知道是否存在满足条件的购买方案,如果有,最少花费又是多少。

【输入】

第一行包含一个正整数 ,代表测试数据组数。

对于每组测试数据,第一行包含三个正整数n , P , Q n,P,Qn,P,Q,含义如题面所示。

之后n nn行,每行包含两个正整数p i , c i p_i,c_ipi,ci,代表武器的强度和花费。

【输出】

对于每组测试数据,如果存在满足条件的购买方案,输出最少花费,否则输出− 1 -11

【输入样例】

3 3 2 3 1 2 1 2 2 3 3 3 4 1 2 1 2 2 3 3 1000 1000 1 2 1 2 2 3

【输出样例】

3 -1 -1

【算法标签】

《洛谷 P11377 武器购买》 #动态规划DP# #背包DP# #GESP# #2024#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=105;// 最大物品数量constintMAX_COST=5000005;// 最大成本,需要根据题目要求调整intt;// 测试用例数量intn,P,Q;// n: 物品数量, P: 需要的最小收益, Q: 最大可用成本intp[N],c[N];// p[i]: 第i件物品的收益, c[i]: 第i件物品的成本intdp[MAX_COST];// dp[j]: 花费成本不超过j时能获得的最大收益intmain(){cin>>t;// 读取测试用例数量// 处理每个测试用例while(t--){// 输入当前测试用例的数据cin>>n>>P>>Q;// 初始化dp数组为0memset(dp,0,sizeof(dp));// 输入每件物品的收益和成本for(inti=1;i<=n;i++){cin>>p[i]>>c[i];}// 01背包动态规划// 外层循环:遍历每件物品for(inti=1;i<=n;i++){// 内层循环:反向遍历成本(从大到小)// 确保每件物品最多被选一次for(intj=Q;j>=c[i];j--){// 状态转移方程:// 1. 不选第i件物品:dp[j]保持不变// 2. 选第i件物品:dp[j-c[i]] + p[i]dp[j]=max(dp[j],dp[j-c[i]]+p[i]);}}// 寻找最小成本使得收益至少达到Pboolflag=0;// 标记是否找到符合条件的成本for(inti=0;i<=Q;i++){if(dp[i]>=P)// 如果花费成本i能获得至少P的收益{cout<<i<<endl;// 输出最小成本flag=1;// 标记已找到break;// 找到第一个就退出,因为i是从小到大遍历的}}// 如果没有找到符合条件的成本if(!flag){cout<<-1<<endl;// 输出-1表示无解}}return0;}

【运行结果】

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

7天精通跨平台UI开发:从零到实战的终极指南

7天精通跨平台UI开发&#xff1a;从零到实战的终极指南 【免费下载链接】Avalonia AvaloniaUI/Avalonia: 是一个用于 .NET 平台的跨平台 UI 框架&#xff0c;支持 Windows、macOS 和 Linux。适合对 .NET 开发、跨平台开发以及想要使用现代的 UI 框架的开发者。 项目地址: htt…

作者头像 李华
网站建设 2026/6/10 9:22:36

如何快速掌握WeKnora:我的3个实用技巧和5个常见误区

如何快速掌握WeKnora&#xff1a;我的3个实用技巧和5个常见误区 【免费下载链接】WeKnora LLM-powered framework for deep document understanding, semantic retrieval, and context-aware answers using RAG paradigm. 项目地址: https://gitcode.com/GitHub_Trending/we/…

作者头像 李华
网站建设 2026/6/9 14:55:49

算法优化助力疫苗站点公平高效部署

某中心学者助力研究荣获最佳学生论文奖 一篇题为“为改善可及性与公平性部署疫苗分发点以支持疫情应对”的论文&#xff0c;将在2022年国际自治智能体与多智能体系统会议上被授予最佳学生论文奖。该论文的作者包括来自某大学的George Z. Li、Ann Li、Madhav Marathe、Aravind S…

作者头像 李华
网站建设 2026/6/10 9:21:54

终极免费浓雾去雾数据集:Dense_Haze完整指南

终极免费浓雾去雾数据集&#xff1a;Dense_Haze完整指南 【免费下载链接】Dense_Haze数据集 本仓库提供了 Dense_Haze 浓雾数据集&#xff0c;专为 CVPR 2019 NTIRE19 挑战赛设计&#xff0c;用以推动浓雾图像去雾技术的研究与发展。该数据集包含了精心挑选并标注的55张高质量雾…

作者头像 李华
网站建设 2026/6/10 9:27:19

AI编程提示词中文宝典:轻松掌握30+工具使用技巧

AI编程提示词中文宝典&#xff1a;轻松掌握30工具使用技巧 【免费下载链接】system-prompts-and-models-of-ai-tools-chinese AI编程工具中文提示词合集&#xff0c;包含Cursor、Devin、VSCode Agent等多种AI编程工具的提示词&#xff0c;为中文开发者提供AI辅助编程参考资源。…

作者头像 李华
网站建设 2026/6/10 9:23:32

Code-Server远程开发环境搭建:跨设备编程新时代

还在为多台电脑间同步开发环境而头疼吗&#xff1f;想象一下&#xff0c;在平板上流畅编写代码&#xff0c;在老旧笔记本上享受完整IDE功能&#xff0c;这就是code-server带来的革命性体验。&#x1f680; 【免费下载链接】code-server 项目地址: https://gitcode.com/gh_mi…

作者头像 李华