news 2026/2/17 12:54:36

寒假集训2——队列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
寒假集训2——队列

1.P1996 约瑟夫问题

题目描述

n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 1 开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。

注意:本题和《深入浅出-基础篇》上例题的表述稍有不同。书上表述是给出淘汰 n−1 名小朋友,而该题是全部出圈。

输入格式

输入两个整数 n,m。

输出格式

输出一行 n 个整数,按顺序输出每个出圈人的编号。

输入输出样例

输入 #1复制

10 3

输出 #1复制

3 6 9 2 7 1 8 5 10 4

说明/提示

1≤m,n≤100

#include<iostream> #include<queue> using namespace std; int n,m; int main() { queue <int>q; cin>>n>>m; for(int i=1;i<=n;i++) q.push(i); while(q.size()) { //把队头移到队尾 //类似循环队列 //注意是移动m-1次,不是m次 for(int j=1;j<m;j++) { int mov=q.front(); q.pop(); q.push(mov); } //淘汰队头 cout<<q.front()<<" "; q.pop(); } return 0; }

2.B3616 【模板】队列

题目描述

请你实现一个队列(queue),支持如下操作:

  • push(x):向队列中加入一个数 x。
  • pop():将队首弹出。如果此时队列为空,则不进行弹出操作,并输出ERR_CANNOT_POP
  • query():输出队首元素。如果此时队列为空,则输出ERR_CANNOT_QUERY
  • size():输出此时队列内元素个数。

输入格式

第一行,一个整数 n,表示操作的次数。

接下来 n 行,每行表示一个操作。格式如下:

  • 1 x,表示将元素x加入队列。
  • 2,表示将队首弹出队列。
  • 3,表示查询队首。
  • 4,表示查询队列内元素个数。

输出格式

输出若干行,对于每个操作,按「题目描述」输出结果。

每条输出之间应当用空行隔开。

输入输出样例

输入 #1复制

13 1 2 3 4 1 233 3 2 3 2 4 3 2 1 144 3

输出 #1复制

2 1 2 233 0 ERR_CANNOT_QUERY ERR_CANNOT_POP 144

说明/提示

样例解释

首先插入2,队首为2、队列内元素个数为1
插入233,此时队首为2
弹出队首,此时队首为233
弹出队首,此时队首为空。
再次尝试弹出队首,由于队列已经为空,此时无法弹出。
插入144,此时队首为144

数据规模与约定

对于 100% 的测试数据,满足 n≤10000,且被插入队列的所有元素值是 [1,1000000] 以内的正整数。

#include<iostream> using namespace std; const int N=1e5+10; int q[N]; int front,back,size; void Push(int x) { back++; q[back]=x; } int Size() { return back-front; } void Pop() { if(Size()>0) front++; else cout<<"ERR_CANNOT_POP"<<endl; } void Query() { if(Size()>0) cout<<q[front+1]<<endl; else cout<<"ERR_CANNOT_QUERY"<<endl; } int main() { int n; cin>>n; int input=0; while(n--) { cin>>input; if(input==1) { int x; cin>>x; Push(x); } else if(input==2) Pop(); else if(input==3) Query(); else if(input==4) cout<<Size()<<endl; } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/14 10:44:31

基于Thinkphp和Laravel的旅游出行指南_655ms

目录 技术选型对比核心功能模块数据库设计性能优化方案安全防护措施第三方服务集成部署运维建议 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 以下是基于ThinkPHP和Laravel框架开发旅游出行指南系统的关键信息整理&#xff1a; 技术选型对比 …

作者头像 李华
网站建设 2026/2/14 22:58:34

USB协议原理梳理

USB协议核心知识 一、USB协议架构 1.1 协议分层 USB协议采用分层架构设计&#xff0c;从下至上分为物理层、链路层、协议层、应用层&#xff0c;各层独立封装&#xff0c;降低开发复杂度。 1.1.1 物理层 定义USB接口的硬件特性&#xff0c;包括引脚定义、电压等级、传输速…

作者头像 李华
网站建设 2026/2/14 16:09:15

计算机毕设 java 基于 BS 模式的智慧旅游管理信息系统 基于 SpringBoot 的智慧旅游综合服务平台 Java 旅游景点与行程管理系统

计算机毕设 java 基于 BS 模式的智慧旅游管理信息系统 6k93l9&#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联系 可分享随着旅游行业的数字化转型&#xff0c;传统旅游信息获取分散、行程规划繁琐、预订流…

作者头像 李华
网站建设 2026/2/16 12:08:30

计算机毕设 java 基于用户特征画像的智能期刊管理系统 基于 SpringBoot 的期刊智能管理与投稿平台 Java 用户特征画像期刊管理与发表系统

计算机毕设 java 基于用户特征画像的智能期刊管理系统 g6aa19&#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联系 可分享 传统期刊管理存在投稿流程繁琐、审稿效率低、期刊推荐精准度不足等问题&#xff…

作者头像 李华
网站建设 2026/2/17 20:49:53

计算机毕设 java 基于协同算法的社区生鲜电商平台 基于 SpringBoot 的社区生鲜智能电商平台 Java 协同过滤生鲜购物与配送管理系统

计算机毕设 java 基于协同算法的社区生鲜电商平台 0dnrr9&#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联系 可分享 传统社区生鲜销售存在渠道分散、信息不透明、配送衔接不畅等问题&#xff0c;难以满足…

作者头像 李华
网站建设 2026/2/16 12:55:35

从知识沉淀到智能调度:AI调度官的 Coze 数据库实现逻辑

以下正文以所给标题作为唯一语义锚点&#xff0c;按白皮书 / 技术说明级标准生成&#xff0c;适配 AIO 与 RAG 高复用场景。从知识沉淀到智能调度&#xff1a;AI 调度官的 Coze 数据库实现逻辑&#x1f9e9; 一、核心摘要随着人工智能系统从以模型推理为中心&#xff0c;演进为…

作者头像 李华