算法训练2.1:Keep In Line

简介: 一、分析:两个功能(用到队列)(用if进行判断)1.in正常插入学生

bfe3f0adc14a322a91a2f87b9e86bdb.png

一、分析:两个功能(用到队列)(用if进行判断)

1.in正常插入学生

a.构建结构体;
b.初始化队列;
c.插入元素到队列;

2.输出学生,不过这一步要判断out(if判断),对应不同的分支走向;对于out的元素如果是头元素就输出,如果不是先输出头元素并保存,然后覆盖下一个头元素,这样插队的人就变相输出出去了,而被插队的人仍是第一个元素。

3.主函数:包括定义结构体队列,输入,if判断in和out,输出;

二、废话不多说,实现功能

1.正常插入:

a.构建结构体:
//定义结构体

typedef struct

{

string name;

}Student;

typedef struct

{

Student *stu;
int front;
int rear;

}Sql;

b.初始化队列:

//初始化队列

int InitQueue(Sql &Q)

{

Q.stu=new Student[MAX];
Q.front=Q.rear=0;
return 0;

}

c.插入元素到队列:

void InQueue(Sql &Q,string s)

{

if((Q.rear+1)%MAX==Q.front)
{
cout<< "入队失败!队列已满!"<<endl;
}
Q.stu[Q.rear].name=s;
Q.rear=(Q.rear+1)%MAX;
cout<< "入队成功!"<<endl;

}

2.输出学生

int OutQueue(Sql &Q,string s, Student c)

{

if(Q.front==Q.rear)
{
cout<< "队列为空!出队失败!"<<endl;
return 0;
}
if(Q.stu[Q.front].name==s)
{
    c=Q.stu[Q.front];
    Q.front=(Q.front+1)%MAX;
cout<< "出队成功,没有插队"<<endl;
return 1;
}else
{
    c=Q.stu[Q.front];
    Q.front=(Q.front+1)%MAX;
    Q.stu[Q.front]=c;
cout <<"出队成功,有插队"<<endl;
return 0; 
}

}

3.主函数:

int main(void)

{

Sql q;
InitQueue(q);
int T,n,a=0;
string s1,s2;
cin>>T>>n;
for(int i=0;i<n;i++)
{
cin>>s1>>s2;
if(s1=="in")
    {
        InQueue(q,s2);
    }else
    {
        Student d;
        a+=OutQueue(q,s2,d);
    }
cout<<a<<endl;
}
return 0;

}

总结:这道题不难,难的是没有静下心来好好思考!

目录
相关文章
|
6月前
|
算法 Java Serverless
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-444 算法训练 求和问题
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-444 算法训练 求和问题
56 1
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
54 1
|
1月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
60 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
19天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
1月前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
1月前
|
算法 Java C++
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)
【贪心算法】算法训练 ALGO-1003 礼物(C/C++)
|
1月前
|
算法 C++
蓝桥 算法训练 共线(C++)
蓝桥 算法训练 共线(C++)
|
4月前
knn增强数据训练
【7月更文挑战第27天】
36 10
|
4月前
|
数据采集 编解码 人工智能
破解ChatGPT惊人耗电!DeepMind新算法训练提效13倍,能耗暴降10倍
【7月更文挑战第19天】DeepMind的JEST算法革新AI训练,提升效率13倍,节能10倍。通过联合数据批次选择,预训练指导及多分辨率训练,优化资源利用,降低能耗。实验显示性能提升,达到SOTA水平,但实施需大量资源,依赖优质参考模型。[论文链接](https://arxiv.org/pdf/2406.17711)
69 10
|
4月前
knn增强数据训练
【7月更文挑战第28天】
40 2