当前位置: 首页 > news >正文

UVA540 Team Queue 解题报告

UVA540 Team Queue 解题报告

题目链接

https://vjudge.net/problem/UVA-540

题目大意

有t个团队的人正在排一个长队。每次新来一个人时,如果他有队友在排队,那么这个新人会插队到最后一个队友的身后。如果没有任何一个队友排队,则他会排到长队的队尾。输入每个团队中所有队员的编号,要求支持如下3种指令(前两种指令可以穿插进行)。

ENQUEUE:编号为x的人进入长队。
DEQUEUE:长队的队首出队。
STOP:停止模拟。

对于每个DEQUEUE指令,输出出队的人的编号

解题思路

每个团队可以建模为一个队列,而团队整体又形成一个队列。queue teamQue为团队的队列,记录团队整体的先后顺序,存放的是每个团队的编号,queue q[]存放的是各自团队成员的队列,q[i]代表的是团队i的成员队列。具体实现见代码和注释。

代码

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 1e3 + 10;
const int INF = 0x3fffffff;
const int mod = 1000000007;void solve() {int t, Case = 0;while (cin >> t, t != 0) {cout << "Scenario #" << ++Case << endl;// 记录每个人的团队编号map<int, int> team;for (int i = 0; i < t; i++) {int n, x;cin >> n;while (n--) {cin >> x;team[x] = i;}}// 模拟排队插队queue<int> teamQue, q[maxn];  // teamQue为团队的队列,q[i]为第i个团队的成员队列while (true) {string s;cin >> s;if (s[0] == 'S')break;if (s[0] == 'D') {int tid = teamQue.front();int x = q[tid].front();q[tid].pop();cout << x << endl;if (q[tid].empty()) {teamQue.pop();}} else if (s[0] == 'E') {int x;cin >> x;int tid = team[x];if (q[tid].empty()) {teamQue.push(tid);}q[tid].push(x);}}cout << endl;}}int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cout << fixed;cout.precision(18);solve();return 0;
}
http://www.lryc.cn/news/334307.html

相关文章:

  • 基础贪心问题
  • day13 java final 类和对象的初始化执行顺序
  • 蓝桥杯gcd汇总
  • 极市平台 | 综述:一文详解50多种多模态图像融合方法
  • 数据结构系列-队列的结构和队列的实现
  • MySQL——查询数据的处理
  • 【机器学习300问】59、计算图是如何帮助人们理解反向传播的?
  • ctfshow web入门 php特性 web108--web115
  • 京东API接口采集商品详情数据(测试入口如下)
  • Mac brew 安装软件
  • 【顶部距离计算】计算元素顶部与浏览器顶部的距离
  • 守护人类健康:人工智能赋能医疗领域创新应用
  • linux常用指令(一)——cat、more、cp
  • 基于RTThread的学习(三):正点原子潘多拉 QSPI 通信 W25Q128 实验
  • Mac反编译APK
  • Java数据结构-队列
  • JVM专题——类文件结构
  • 零基础10 天入门 Web3之第2天
  • Vue和FastAPI实现前后端分离
  • 34470A是德科技34470A数字万用表
  • iOS 开发中上传 IPA 文件的方法(无需 Mac 电脑
  • c语言多媒体文件管理及检索系统220
  • 链表之双向链表的实现
  • 小白学大模型:什么是生成式人工智能?
  • 并发编程01-深入理解Java并发/线程等待/通知机制
  • 3.类与对象(中篇)介绍了类的6个默认构造函数,列举了相关案例,实现了一个日期类
  • Vue实现手机APP页面的切换,如何使用Vue Router进行路由管理呢?
  • 软考--软件设计师(软件工程总结2)
  • 渗透测试之SSRF漏洞
  • 【C++】1957. 求三个数的平均数