news 2026/6/10 1:16:50

C++贪心算法一(练习题)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++贪心算法一(练习题)

贪心算法(一)-训练1-1

区间覆盖问题(最少点覆盖)
【描述】给定多个区间,用最少的点覆盖所有区间。
【输入描述】区间数n,随后2n个整数(左端点 右端点,n组)
【输出描述】最少需要的点数
【样例输入】
3
1 3
2 5
4 6
【样例输出】
2

#include<iostream>#include<algorithm>usingnamespacestd;structInterval{intleft,right;};boolcompare(Interval a,Interval b){returna.right<b.right;// 按右端点排序}intminPoints(Interval arr[],intn){sort(arr,arr+n,compare);intpoints=0,lastPoint=-1;for(inti=0;i<n;i++){if(arr[i].left>lastPoint){points++;lastPoint=arr[i].right;// 选当前区间的右端点}}returnpoints;}intmain(){intn;cin>>n;Interval arr[n];for(inti=0;i<n;i++){cin>>arr[i].left>>arr[i].right;}cout<<minPoints(arr,n)<<endl;return0;}/* 【输入用例2】 3 1 3 2 5 4 6 【输出用例2】 2 【输入用例3】 3 0 0 0 1 1 2 【输出用例3】 2 【输入用例4】 5 1 2 3 4 5 6 7 8 9 10 【输出用例4】 5 【输入用例5】 4 1 5 2 5 3 5 4 5 【输出用例5】 1 【输入用例6】 1 100 200 【输出用例6】 1 */

贪心算法(一)-训练1-2

均分纸牌问题(最少移动次数)
【描述】n堆纸牌,每次移动随意张到相邻堆,求使各堆数量相同的最少移动次数。
【输入描述】纸牌数n,随后n个整数(各堆数量)
【输出描述】最少移动次数
【样例输入】
3
3 1 2
【样例输出】
1

#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;inta[n];intsum=0;// 输入并计算总和for(inti=0;i<n;i++){cin>>a[i];sum+=a[i];}intavg=sum/n;// 计算平均值intmoves=0;// 移动次数intprefix=0;// 前缀和// 遍历计算移动次数for(inti=0;i<n;i++){prefix+=a[i]-avg;// 计算累计差值if(i!=n-1&&prefix!=0){moves++;// 每次传递差值产生一次移动}}cout<<moves<<endl;return0;}/* 【输入用例2】 3 3 1 2 【输出用例2】 1 【输入用例3】 5 6 6 6 6 6 【输出用例3】 0 【输入用例4】 2 6 8 【输出用例4】 1 【输入用例5】 4 6 8 8 6 【输出用例5】 2 【输入用例6】 6 6 12 18 24 30 36 42 【输出用例6】 5 */

贪心算法(一)-训练1-3

汽水瓶兑换问题
【描述】每3个空瓶换1瓶汽水,n个空瓶最多能喝多少瓶?
【输入描述】空瓶数n
【输出描述】最多能喝的汽水数
【样例输入】
21
【样例输出】
10

#include<iostream>usingnamespacestd;intmaxSoda(intn){inttotal=0,empty=n;while(empty>=3){intnewSoda=empty/3;total+=newSoda;empty=empty%3+newSoda;// 剩余空瓶 + 新喝的空瓶}returntotal;}intmain(){intn;cin>>n;cout<<maxSoda(n)<<endl;return0;}/* 【输入用例2】 7 【输出用例2】 3 【输入用例3】 15 【输出用例3】 7 【输入用例4】 45 【输出用例4】 22 【输入用例5】 99 【输出用例5】 49 【输入用例6】 0 【输出用例6】 0 */

贪心算法(一)-训练2-1

纪念品分组
元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。
你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。
【输入】共 n+2行:(0<=n<=50)
第一行包括一个整数 w,为每组纪念品价格之和的上限。
第二行为一个整数 n,表示购来的纪念品的总件数。
第 3~n+2行每行包含一个正整数 Pi表示所对应纪念品的价格。
【输出】
一个整数,即最少的分组数目。
【输入样例】
100
9
90
20
20
30
50
60
70
80
90
【输出样例】
6

#include<iostream>#include<algorithm>usingnamespacestd;constintN=55;inta[N],w,n,ans;intmain(){cin>>w>>n;for(inti=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1);//从小到大排序inti=1,j=n;// i左指针,j右指针while(i<=j){if(a[i]+a[j]<=w){//i,j之和不超w,两个组合打包ans++,i++,j--;}elseans++,j--;// 否则,(大的那个)j单独打包}cout<<ans;return0;}/* 【输入用例2】 10 4 1 2 3 4 【输出用例2】 2 【输入用例3】 5 3 1 2 5 【输出用例3】 2 【输入用例4】 4 4 1 1 1 1 【输出用例4】 2 【输入用例5】 3 3 2 2 2 【输出用例5】 3 【输入用例6】 6 5 1 2 3 4 5 【输出用例6】 3 */

贪心算法(一)-训练2-2

最优装载问题(重量优先)
【描述】小王家有一条商务船,靠每天幸苦运货赚取学编程的费用,有一天他突发奇想:船的最大载重为C,有n个物品,重量分别为w[0…n-1],我每次最多能装多少个物品呢?
【输入描述】C(载重),n(物品数),随后n个整数(物品重量)
【输出描述】最多能装的物品数量
【样例输入】
10
3
4 2 3
【样例输出】
3

#include<iostream>#include<algorithm>usingnamespacestd;intmain(){intC,n;cin>>C>>n;intw[100];for(inti=0;i<n;i++){cin>>w[i];}sort(w,w+n);// 按重量升序排序inttotal=0,count=0;for(inti=0;i<n;i++){if(total+w[i]<=C){total+=w[i];count++;}elsebreak;}cout<<count<<endl;return0;}/* 【输入用例2】 10 12 1 1 1 1 1 1 1 1 1 1 1 1 【输出用例2】 10 【输入用例3】 10 9 1 2 3 4 5 6 7 8 9 10 【输出用例3】 4 【输入用例4】 100 6 12 56 48 32 11 2 【输出用例4】 4 【输入用例5】 200 10 12 23 54 1 2 56 3 96 62 70 【输出用例5】 7 【输入用例6】 500 13 10 20 30 40 50 60 70 80 90 100 110 120 130 【输出用例6】 9 */
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 1:14:39

LLM 能力集成:RAG 检索增强生成的架构设计与工程实践

LLM 能力集成&#xff1a;RAG 检索增强生成的架构设计与工程实践一、大模型的知识盲区&#xff1a;为什么纯参数记忆不够用 大语言模型通过参数记忆存储了海量知识&#xff0c;但这种记忆有三个结构性缺陷&#xff1a;知识截止日期导致时效性不足、长尾领域知识覆盖不完整、以及…

作者头像 李华
网站建设 2026/6/10 1:12:34

涡喷发动机及其延伸应用(三)

第六节&#xff1a;涡喷发动机主要性能指标参数及表征涡喷发动机的性能评估与质量保证是一个精密而复杂的系统工程&#xff0c;涉及一系列关键性能指标和严格的试验检测流程。涡喷发动机核心性能和试验技术一、核心性能与试验技术进展1. 推力与效率的精准把控&#xff1a;推力和…

作者头像 李华
网站建设 2026/6/10 1:07:57

【Agent智能体25 | 规划-结合代码执行的规划】

声明&#xff1a;本篇博客是以吴恩达的【Agent智能体】教程为基础&#xff0c;并对其中的内容做了笔记整理以及个人收获的总结。 结合代码执行的规划&#xff0c;指的是不再让LLM直接输出计划&#xff0c;比如说&#xff0c;不是让它以JSON格式输出&#xff0c;逐行执行每一步。…

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

java环境安装

1.jdk下载&#xff1a;Java Downloads | Oracle 2、下载21版本&#xff0c;Windows x64 Installer&#xff0c;点击后面的链接下载。 3、安装D盘 4、配置环境变量&#xff0c; 点击新建 变量名&#xff1a;Java_Home 变量值&#xff1a;点击预览目录&#xff0c;选择你自己…

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

Anthropic安全白皮书4|用AI对抗AI:自动化安全运营的实战方法

当攻击者用AI发起攻击&#xff0c;你还在手动处理告警信息吗&#xff1f; 如果你的安全团队每天收到上千条告警&#xff0c;真正看的不到10%&#xff0c;剩下的淹没在队列里——你已经被AI攻击者甩在身后了。 白皮书第V部分指出&#xff1a;攻击者利用AI可以将漏洞利用时间从数…

作者头像 李华
网站建设 2026/6/10 1:01:14

AI率降不下来?2026这5款工具亲测好用,附保姆级使用教程

大家为了给初稿降ai肯定搜过各种各样的免费降ai率工具&#xff0c;甚至去尝试过那些乱七八糟的文本重写偏方。我听有的伙伴说自己改了一通宵&#xff0c;结果钱花了也没能有效优化文本&#xff0c;文章反而被改得语无伦次排版全乱。 作为经历过这些的过来人&#xff0c;我太懂…

作者头像 李华