news 2026/11/3 0:00:22

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 -1−1。

【输入样例】

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/11/1 0:42:52

C4极简编译器终极指南:如何在4个函数内实现完整C语言编译

C4极简编译器终极指南&#xff1a;如何在4个函数内实现完整C语言编译 【免费下载链接】c4 x86 JIT compiler in 86 lines 项目地址: https://gitcode.com/gh_mirrors/c42/c4 想要了解编译器的核心原理却苦于复杂理论&#xff1f;C4极简编译器将彻底改变你的认知。这个仅…

作者头像 李华
网站建设 2026/11/2 8:48:31

YOLO模型训练时间太长?使用混合精度+V100 GPU提速3倍

YOLO模型训练时间太长&#xff1f;使用混合精度V100 GPU提速3倍 在工业质检线上&#xff0c;一个目标检测模型的迭代周期直接决定了产品能否按时交付&#xff1b;在自动驾驶研发中&#xff0c;每一轮训练节省几个小时&#xff0c;就意味着能多跑一次实车验证。而当我们面对YOL…

作者头像 李华
网站建设 2026/10/30 18:03:27

5分钟掌握AI绘画:用stable-diffusion-webui创作个性化数字艺术

你是否曾梦想将自己的创意瞬间转化为视觉艺术作品&#xff1f;stable-diffusion-webui让这个梦想变得触手可及。这款基于Gradio库开发的Web界面工具&#xff0c;将复杂的AI图像生成技术转化为直观的可视化操作&#xff0c;让零基础用户也能轻松创作出令人惊艳的数字艺术作品。 …

作者头像 李华
网站建设 2026/10/30 18:02:35

YOLO模型训练任务崩溃?常见GPU内存溢出原因及解决方案

YOLO模型训练任务崩溃&#xff1f;常见GPU内存溢出原因及解决方案 在部署一个工业质检系统时&#xff0c;团队正准备对产线上的微小缺陷进行高精度检测。他们选用了YOLOv8x——这个以强大表征能力著称的模型&#xff0c;并将输入分辨率提升至12801280以捕捉更细微的目标。然而&…

作者头像 李华
网站建设 2026/10/30 18:02:36

Waymo Open Dataset自动驾驶数据集:5步快速上手终极指南

Waymo Open Dataset自动驾驶数据集&#xff1a;5步快速上手终极指南 【免费下载链接】waymo-open-dataset Waymo Open Dataset 项目地址: https://gitcode.com/gh_mirrors/wa/waymo-open-dataset Waymo Open Dataset作为业界领先的自动驾驶开源数据集&#xff0c;为研究…

作者头像 李华
网站建设 2026/10/31 20:03:49

PPSSPP终极控制映射指南:三步搞定完美游戏操控体验

还在为手机模拟器操作不顺而烦恼吗&#xff1f;想要让虚拟按键像实体手柄一样精准响应吗&#xff1f;作为一款跨平台的PSP模拟器&#xff0c;PPSSPP通过强大的控制映射系统&#xff0c;能够将你的手机、平板或电脑完美变身为一台功能齐全的PSP掌机。无论你是触屏玩家还是键盘手…

作者头像 李华