安徽省小学组省赛2015年第一题 糖果甜度(C++)
我发现,在网上找不到关于安徽省小学组的题解(甚至是题目),因此,我准备把我做过的安徽省小学组的题解上传,供大家参考。
1.糖果甜度(candy)
卡卡西是一个奇幻小说迷,一直憧憬着自己有一天能变成超人,为正义而战。有一天,她放学回家,路过熟悉的糖果店,发现糖果店店员闷闷不乐的样子,正义的卡卡西赶紧上前询问,了解原因。原来贪婪的店长近期为了节省开支,减少
店员,想出题进行员工考核,到期答不出考题的店员就要被解聘。考题是这样的:
在一堆甜度不同的 n 个糖果中,假设只能吃 k 个糖果,请问能吃到的最大甜度之
和是多少。卡卡西冲着店员自信的一笑,拍拍胸脯说:“放心吧,我来帮你解出
这道题,你一定不会被解聘的!”聪明的小朋友们,你们知道如何解出这道题,
帮助店员度过难关吗?
输入:输入数据有两行。第一行有两个数,分别表示糖果的总个数 n 和能吃的
糖果个数 k;第二行有 n个数,用空格分开,分别表示每个糖果的甜度。
输出:能吃到的最大甜度之和。
样例: 输入:(candy.in) 5 2 6 2 5 1 8 输出:(candy.out) 14 样例解释:先吃甜度为 8 的糖,再吃甜度为 6 的糖,甜度之和为 14。
数据范围:0<n≤10000,0≤k≤1000,0<每个糖果的甜度≤100
本题思路:
这题可谓是一道大水题啊。直接排序,不过是逆序排序哦,这可能就是出题人想考的吧。接着,累加前k位数字,输出总和就可以了。下面附上本蒟蒻的代码。
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; int cmp(int a,int b) { return a>b; } int main() { int n,k,sum=0,temp=0; cin>>n>>k; int a[n]; for (int i=0;i<n;i++) cin>>a[i]; sort(a,a+n,cmp); for (int i=0;i<k;i++) sum=sum+a[i]; cout<<sum<<endl; return 0; }
作者:暄妍
我的博客:http://www.cnblogs.com/zbyrainbow/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析