当前位置: 首页 > news >正文

2020年CSP-X复赛真题及题解(T3:侠盗阿飞)

2020年CSP-X复赛真题及题解(T3:侠盗阿飞)

题目描述

侠盗阿飞获得了一笔意外之财w ww元钱,他想用这笔钱去帮助需要帮助的人。现在知道有n nn个需要帮助的人以及他们每个人需要的钱数x i x_ixi元(i = 0 , 1 , 2 , 3 , … , n − 1 i=0,1,2,3,\dots,n-1i=0,1,2,3,,n1),阿飞应该如何支配这笔钱使得能得到帮助的人数最多?

输入格式

第一行:两个数,阿飞的钱数w ww,需要帮助的人数n nn

第二行:n nn个数,分别表示第i ii个人需要的钱数x i x_ixi

输出格式

只有一个整数,表示阿飞最多能帮到的人数(最多的人数)。

输入输出样例 1
输入 1
10 5 1 2 3 4 5
输出 1
4
输入输出样例 2
输入 2
1000 10 20 20 150 110 180 50 200 140 120 200
输出 2
9
说明/提示

对于30 % 30\%30%的数据,x i x_ixi为升序序列(x 0 < x 1 < x 2 < x 3 < … x_0\lt x_1\lt x_2\lt x_3\lt \dotsx0<x1<x2<x3<)。

对于100 % 100\%100%的数据,0 ≤ n ≤ 500 0\leq n\leq 5000n5000 < x i ≤ 5 × 10 4 0 \lt x_i\leq 5\times 10^40<xi5×1040 ≤ w ≤ 2 × 10 9 0\leq w\leq 2\times 10^90w2×109

思路分析

要帮助尽可能多的人,应该优先帮助需要钱数最少的人。
因此先对所有人的需求从小到大排序,然后从最小的开始累加,直到当前总花费加上下一个人的需求会超过总钱数w为止。
这样得到的人数一定是最多的。


代码实现

#include<bits/stdc++.h>usingnamespacestd;intn,a[510];// n:人数, a:每个人需要的钱数longlongw;// 阿飞的总钱数intmain(){cin>>w>>n;for(inti=0;i<n;i++)cin>>a[i];sort(a,a+n);//按需求从小到大排序longlongs=0;//当前已经花费的钱数intc=0;//最多能帮助的人数for(inti=0;i<n;i++){//从小到大尝试帮助每个人if(s+a[i]<=w){//如果帮助这个人钱够s+=a[i];//累加花费c++;//人数加一}elsebreak;//钱不够,后面的需求更大,直接结束}cout<<c;//输出答案return0;}

功能分析

  • 使用贪心策略:先帮助需求最小的人,能够保证在有限的钱数下帮助到最多的人。
  • 对数组排序时间复杂度为O(n log n)n <= 500,效率很高。
  • 使用long long存储钱数,避免累加时溢出。
  • 当总花费加上当前人的需求超过w时,因为数组已经升序,后面的人需求更大,所以直接结束循环。
  • 可以正确处理n = 0w = 0的情况。

更多内容请关注专栏:信奥赛C++普及组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转


【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901 点击跳转

2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

https://edu.csdn.net/course/detail/41081 点击跳转

3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转

4、csp信奥赛冲刺一等奖有效刷题题解:

信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

信奥赛C++普及组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转

5、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}

http://www.gsyq.cn/news/1550900.html

相关文章:

  • 专业指南:如何用 StarUML Java 插件实现 UML 与代码双向转换
  • tModLoader 专用服务器搭建教程:Terraria泰拉瑞亚 模组联机全攻略
  • FitGirl游戏启动器完整指南:一站式管理你的游戏收藏库
  • 2026蚌埠市初三学生中考两三百分能上什么学校?推荐合肥理工学校! - 教育为先
  • 2026免费照片去水印软件app有哪些?安卓苹果免费去水印APP对比+在线免费去水印网页工具
  • 上海健身器材上门安装维修推荐良匠千艺 2026 口碑榜 - 我叫一
  • 10分钟快速上手ESP32物联网开发:Arduino核心安装实战指南
  • 2026年常州装修推荐榜:湖塘全案设计/钟楼家装/武进别墅大宅/金坛全屋整装最新口碑之选 - 品牌发掘
  • 2026年除甲醛公司十大品牌推荐:新房去甲醛/室内空气治理/装修除味/杀菌消毒权威榜单+口碑实测解析 - 品牌发掘
  • M•CORE外设库深度解析:从硬件抽象到嵌入式驱动开发实战
  • 面向对象程序设计--作业集4~6总结
  • TrafficMonitor插件:在Windows任务栏实现系统监控与信息获取的终极指南
  • OpenCore Legacy Patcher终极指南:四步让老旧Mac免费升级最新macOS
  • DeepSpeech端到端语音识别引擎架构深度解析与实战应用指南
  • 2026年冷库厂家/工程公司推荐排行榜:医药GSP冷库、食品速冻冷库、自动化高架冷库及超低温冷库安装设计与维保深度解析 - 品牌发掘
  • 终极指南:一键获取119,376个英语单词标准发音MP3音频库
  • 基于MCP2155红外通信的产品识别系统:从寄存器配置到工程实践
  • 【案例分享】郑州GEO工厂哪家口碑好?亲测排名前五揭晓
  • Vite构建生态的稳定性演进:从esbuild版本危机到架构韧性设计
  • Gemini多模态能力深度解析:从评测分数到工程落地
  • MPC857T双端口RAM与RISC定时器:通信处理器性能优化核心
  • 24LCS22A EEPROM详解:VESA E-EDID标准、I²C通信与显示器身份识别的工程实践
  • 总线状态分析器(BSA)原理与MMDS11实战:嵌入式底层调试与性能剖析
  • 文心5.0原生全模态:统一语义空间驱动的多感官智能
  • MGT5100 PSC模块:嵌入式串行通信的硬件引擎与多模式应用
  • DeepSeek V4去CUDA化:模型驱动的国产AI芯片协同实践
  • 用 ChatGPT 5.5 构建个人写作工作流:从大纲到润色的提示词链实战
  • 5大核心功能解锁Ryzen处理器隐藏性能:SMUDebugTool深度解析
  • 黄金不语,却总在人类历史的喧嚣处,发出最沉的回响。
  • 摆脱论文困扰:6款2026年靠谱AI写论文工具深度横评