2026.3.16oj总结

news2026/3/18 11:41:40
1.学生信息问题描述你的程序需要从标准输入设备通常为键盘中输入N1≤N≤10个学生的信息每项信息包含该学生的编号、姓名、性别、年龄、成绩共五项按成绩进行排序然后按成绩从低到高输出输入保证没有相同的成绩。#includeiostream#includestring#include algorithmusing namespace std;struct Student {int num;string name;string sex;int age;int score;};bool cmp(Student a, Student b) {return a.score b.score;}int main() {int N;cin N;Student stu[10];for (int i 0;i N;i) {cin stu[i].num stu[i].name stu[i].sex stu[i].age stu[i].score;}sort(stu, stuN,cmp);for (int i 0;i N;i) {cout stu[i].num stu[i].name stu[i].sex stu[i].age stu[i].score endl;}}2.成绩统计问题描述每次通过键盘输入5位学生如下表所示的数据然后计算并输出每位学生的平均成绩再输出数学成绩最高的学生的姓名及成绩。#includeiostream#includestring#include algorithm#include vectorusing namespace std;struct Student {string name;int ms;int ps;};bool cmp(Student a, Student b) {return a.ms b.ms;}int main() {Student stu[5];vectorint avar;for (int i 0;i 5;i) {cin stu[i].name stu[i].ms stu[i].ps;int a (stu[i].ms stu[i].ps) / 2;avar.push_back(a);}for (int i 0;i 5;i) {cout stu[i].name avar[i] endl;}sort(stu, stu 5, cmp);cout stu[0].name stu[0].ms stu[0].ps;}3.摩托车问题描述明明是一家摩托车厂的老板他的厂为了迎合市场中不同消费者的需求会生产不同型号的摩托车这为明明的厂带来了不小的收益。有一次一位大客户来到明明的厂洽谈生意他需要采购一批型号各不相同的摩托车然后他把需要的摩托车的型号告诉了明明接着明明就需要在他所生产的摩托车中寻找到型号匹配的如果有则卖给那个客户如果没有则只能对客户说抱歉了。明明忙了一个上午终于把那个客户需要的摩托车全部配齐了然后成功的谈成了这笔生意。 事后明明发现了一个问题如果每个客户来都需要这样忙一个上午才能够知道自己生产的摩托车能否满足客户的需要这样的工作效率实在太低了更有可能损失很多客户这样对工厂未来的发展也是很不利的。于是明明找到了你你是一名程序设计专家明明希望你能够帮他写一个程序程序中记录了他工厂生产的所有摩托车的数据然后当有客户拿着摩托车的订单来洽谈生意时只要在这个程序中输入摩托车的型号数据程序就能够查询出工厂是否生产这类的摩托车这样就能提高明明工厂的工作效率有助于工厂进一步发展。摩托车需要记录的数据有以下一些摩托车的型号摩托车的颜色和摩托车马达的类型。例如客户需要的摩托车型号如下摩托车型号a1a2明明拥有的摩托车类型如下摩托车型号 摩托车颜色 摩托车马达型号a1 yellow r1a3 red r3a4 blue r4从中可以看出明明的工厂只有a1这个型号的摩托车。明明的问题可以归结为写一个程序程序中输入客户需要的摩托车型号和明明工厂拥有的摩托车的型号。在记录明明工厂的摩托车时还要记录摩托车的颜色和摩托车马达的类型。程序要判断明明工厂拥有的摩托车是否能满足客户的需要总结两个结构体结果数组的结构体类型直接用工厂类#includeiostream#includestring#include algorithm#include vectorusing namespace std;struct Factory {string model;string color;string motor;};struct Customer {string model;};bool cmp(Factory a, Factory b) {return a.model b.model;}int main() {int n, m;while(cinnm){vectorFactory fac(m);vectorCustomer cus(n);vectorFactory res;for (int i 0;i n;i) {cin cus[i].model;}for (int i 0;i m;i) {cin fac[i].model fac[i].color fac[i].motor;}for (int i 0;i n;i) {for (int j 0;j m;j) {if (cus[i].model fac[j].model){res.push_back(fac[j]);break;}}}sort(res.begin(), res.end(), cmp);if (res.empty()) {cout Not found! endl;}for (int i 0;i res.size();i) {cout res[i].model res[i].color res[i].motor endl;}}}4。扑克牌问题描述明明和他的三位同学在玩一种非常有趣的扑克牌游戏。在这个游戏中一副牌的大小怪被除去然后把剩下的52张牌随机发给4个人这样每个人的手中就有13张牌。接下来的任务就是每个人把自己手中的牌按一定的顺序整理好。理牌的顺序如下首先按牌的大小整理牌的大小顺序为AKQJT(10)9…2如果牌的大小相等则按如下的花色顺序整理黑桃S红心H方块D草花C。例如有一个人手中拿到的牌如下ST CQ S8 D8 HQ D2 H3 HK H9 H2 HT SK CK经过整理后的牌的顺序会变为SK HK CK HQ CQ ST HT H9 S8 D8 H3 H2 D2其中SK、HK、CK这三张牌的大小相同都是K于是根据花色的顺序整理先是S再是H最后是C所以顺序为SK、HK、CK。当每个人把自己手中的牌整理完后他们就开始玩非常有趣的扑克游戏了。但是玩着玩着他们发现了一个问题理牌的时间太长这使得他们玩牌的兴致被大大减弱了。于是他们来求助于你能否帮他们写一个理牌程序帮助他们理牌这样他们就可以不必把大量的时间花在理牌上面而尽情享受玩牌的乐趣了。明明的问题可以归结为给你每人手中顺序打乱的13张牌一共有4套然后通过题目中描述的理牌顺序理好这4套牌。总结规范化处理将花色牌都转化为数字方便比较二维数组与结构体定义牌的结构二维数组表示4个人手上各自拿了13张牌类型就是牌输入输入时双层循环people数组需要被赋值people[i][j].suit people[i][j].s[0];people[i][j].rank people[i][j].s[1];排序对people数组进行排序#includeiostream#includestring#include algorithm#include vectorusing namespace std;struct Card {string s;char suit;char rank;};//规范化处理int getSuit(char suit) {if (suit S) return 4;else if (suit H) return 3;else if (suit D) return 2;else if (suit C) return 1;}int getRank(char rank) {if (rank A) return 14;else if (rank K) return 13;else if (rank Q) return 12;else if (rank J) return 11;else if (rank T) return 10;else return rank - 0;}bool cmp(Card a, Card b) {if (getRank(a.rank) ! getRank(b.rank)){return getRank(a.rank) getRank(b.rank);}else{return getSuit(a.suit) getSuit(b.suit);}}int main() {int n;cin n;bool firstcase true;while (n--) {if (!firstcase) {cout endl;}firstcase false;Card people[4][13];for (int i 0;i 4;i) {//玩家for (int j 0;j 13;j) {//牌cin people[i][j].s;people[i][j].suit people[i][j].s[0];people[i][j].rank people[i][j].s[1];}}//对每一个玩家的牌进行排序for (int i 0;i 4;i) {sort(people[i], people[i] 13, cmp);}for (int i 0;i 4;i) {for (int j 0;j 13;j) {cout people[i][j].s;if (j 12) cout ;}cout endl;}}}5.混合牛奶问题描述牛奶包装是一个如此低利润的生意,所以尽可能低的控制初级产品(牛奶)的价格变得十分重要。请帮助快乐的牛奶制造者(Merry Milk Makers)以可能的最廉价的方式取得他们所需的牛奶。快乐的牛奶制造公司从一些农民那购买牛奶每个农民卖给牛奶制造公司的价格不一定相同。而且,如一头母牛一天只能生产一定量的牛奶,农民每一天只有一定量的牛奶可以卖。每天,快乐的牛奶制造者从每个农民那购买一定量的牛奶,少于或等于农民所能提供的最大值。给出快乐牛奶制造者的每日的牛奶需求,连同每个农民的可提供的牛奶量和每加仑的价格,请计算快乐的牛奶制造者所要付出钱的最小值。注意: 每天农民生产的牛奶的总数对快乐的牛奶制造者来说足够的。总结最后一步的计算need要置为0#includeiostream#includestring#include algorithm#include vectorusing namespace std;struct Milk {int price;int num;};bool cmp(Milk a, Milk b) {return a.price b.price;}int main() {int N, M;cin N M;vectorMilk farmer(M);for (int i 0;i M;i) {cin farmer[i].price farmer[i].num;}sort(farmer.begin(),farmer.end(),cmp);int sum 0;int need N;for (int i 0;i farmer.size()need0;i) {//需要这个农民的全部牛奶if (farmer[i].num need) {sum sum (farmer[i].price) * farmer[i].num;need need - farmer[i].num;}//只需要部分牛奶else {sum sum (need)* farmer[i].price;need 0;}}cout sum;}6.挤牛奶问题描述三个农民每天清晨5点起床然后去牛棚给3头牛挤奶。第一个农民在300时刻(从5点开始计时秒为单位)给他的牛挤奶一直到1000时刻。第二个农民在700时刻开始在 1200时刻结束。第三个农民在1500时刻开始2100时刻结束。期间最长的至少有一个农民在挤奶的连续时间为900秒(从300时刻到1200时刻)而最长的无人挤奶的连续时间(从挤奶开始一直到挤奶结束)为300秒(从1200时刻到1500时刻)。 你的任务是编一个程序读入一个有N个农民(1 N 5000)挤N头牛的工作时间列表计算以下两点(均以秒为单位): 最长至少有一人在挤奶的时间段。 最长的无人挤奶的时间段。总结结构体定义集体结构体开始时间和结束时间。、排序按照开始时间的前后进行排序合并区间设置第一个区间为开始时间和结束时间后面从第二个开始遍历依次如果有重复区间就将当前结束时间更新为这个区间的结束时间。如果碰到了没有重叠的部分就将当前结束时间-当前开始时间就为工作时间空闲时间则等于现在这个区间的开始时间-当前结束时间这是间隔。#includeiostream#includestring#includevector#include algorithmusing namespace std;struct Farmer {int start;int end;};bool cmp(Farmer a, Farmer b) {return a.start b.start;}int main() {int N;cin N;vectorFarmer time(N);for (int i 0;i N;i) {cin time[i].start time[i].end;}sort(time.begin(), time. end(),cmp);//合并区间int maxwork 0;int maxfree 0;int currentstart time[0].start;int currentend time[0].end;for (int i 1;i N;i) {if (time[i].start currentend) {//区间有重叠if (time[i].end currentend) {currentend time[i].end;}}else {int work currentend - currentstart;//计算工作时长if (work maxwork){maxwork work;}int free time[i].start - currentend;if (free maxfree) {maxfree free;}//开始新的区间currentstart time[i].start;currentend time[i].end;}}//forint lastwork currentend - currentstart;if (lastwork maxwork) {maxwork lastwork;}cout maxwork maxfree;}7.顺序的分数题描述输入一个自然数N请写一个程序来增序输出分母小于等于N的既约真分数(即无法再进行约分的小于1的分数)总结#includeiostream#includestring#includevector#include algorithmusing namespace std;struct Fenshu {int fenmu;int fenzi;};bool cmp(Fenshu a, Fenshu b) {return double(a.fenzi) / a.fenmu double(b.fenzi) / b.fenmu;}bool isYueZhen(Fenshu a) {for (int i 2;i a.fenzi;i) {if (a.fenzi% i 0 a.fenmu % i 0) return false;}return true;}int main() {int N;cin N;vectorFenshu fs;for (int i1;iN;i){//分母for (int j 0;j i;j) {if (j 0 i 1) continue;Fenshu f;//定义一个数字存储当前的分数f.fenmui;f.fenzij;if (isYueZhen(f)){fs.push_back(f);}}}sort(fs.begin(), fs.end(), cmp);for (int i 0;i fs.size(); i) {cout fs[i].fenzi / fs[i].fenmu endl;}}8.01背包问题场景你有一个背包容量为C有n个物品每个物品有重量w[i]价值v[i]目标在不超过背包容量的情况下装价值总和最大的物品#includeiostream#includestring#includevector#include algorithmusing namespace std;int main() {int n, c;//物品个数背包总容量cin n c;int w[1005], v[1005];for (int i 0;i n;i) {cin w[i] v[i];}int dp[1005] { 0 };for (int i 0;i n;i) {for (int j c;j w[i];j--)//防止重复放{dp[j] max(dp[j], dp[j - w[i]] v[i]);//比较加不加这个物品哪个价值高}}cout dp[c] endl;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2417949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…