POJ2259 Team Queue 模拟 队列

编程入门 行业动态 更新时间:2024-10-26 12:32:46

POJ2259 Team Queue 模拟 <a href=https://www.elefans.com/category/jswz/34/1771257.html style=队列"/>

POJ2259 Team Queue 模拟 队列

题目链接

=2259

分析

根据题意模拟,建一个队列表示当前有哪些团队,再给每个团队建一个队列,表示哪些成员在队伍中。

AC代码

#include <cstdio>
#include <cstring>
#include <queue>using namespace std;inline int read() {int num = 0;char c = getchar();while (c < '0' || c > '9') c = getchar();while (c >= '0' && c <= '9')num = num * 10 + c - '0', c = getchar();return num;
}const int maxt = 1e3 + 5, maxn = 1e6 + 5;int id, t, belong[maxn], vis[maxt];
queue<int> q[maxt];int main() {while (scanf("%d", &t) == 1 && t) {printf("Scenario #%d\n", ++id);memset(vis, 0, sizeof(vis));for (int i = 0; i <= t; ++i)while (!q[i].empty()) q[i].pop();for (int i = 1; i <= t; ++i) {int n = read();for (int j = 1; j <= n; ++j) belong[read()] = i;}char op[10];while (scanf("%s", op) == 1 && op[0] != 'S') {if (op[0] == 'E') {int x = read();if (!vis[belong[x]])vis[belong[x]] = 1, q[0].push(belong[x]);q[belong[x]].push(x);}else if (op[0] == 'D') {printf("%d\n", q[q[0].front()].front());q[q[0].front()].pop();if (q[q[0].front()].empty())vis[q[0].front()] = 0, q[0].pop();}}puts("");}return 0;
}

更多推荐

POJ2259 Team Queue 模拟 队列

本文发布于:2024-02-25 21:36:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1700363.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:队列   Team   Queue

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!