POJ 2259 队列

Posted Flowersea

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 2259 队列相关的知识,希望对你有一定的参考价值。

链接:

http://poj.org/problem?id=2259

题意:

排队吃饭,有n个team,每当一个人过来的时候,只要前面有他认识的人,就会直接插到那个team的后面,否则从后面排队

然后就是询问你每次出队的是谁

题解:

用两个队列就可以了,主队列里面是team编号,然后每个team再开一个队列就可以了

代码:

31 int n;
32 queue<int> Q[1010];
33 queue<int> que;
34 int Hash[MAXN];
35 
36 int main() {
37     int cas = 1;
38     while (cin >> n, n) {
39         rep(i, 0, n) while (!Q[i].empty()) Q[i].pop();
40         while (!que.empty()) que.pop();
41         rep(i, 0, n) {
42             int m;
43             cin >> m;
44             while (m--) {
45                 int a;
46                 cin >> a;
47                 Hash[a] = i;
48             }
49         }
50         cout << "Scenario #" << cas++ << endl;
51         string s;
52         while (cin >> s && s != "STOP") {
53             if (s == "ENQUEUE") {
54                 int a;
55                 cin >> a;
56                 int id = Hash[a];
57                 if (Q[id].empty()) que.push(id);
58                 Q[id].push(a);
59             }
60             else {
61                 int id = que.front();
62                 cout << Q[id].front() << endl;
63                 Q[id].pop();
64                 if (Q[id].empty()) que.pop();
65             }
66         }
67         cout << endl;
68     }
69     return 0;
70 }

 

以上是关于POJ 2259 队列的主要内容,如果未能解决你的问题,请参考以下文章

Team Queue POJ - 2259 (队列)

POJ 2259 Team Queue(STL队列)

POJ 2259 Team Queue

poj-2259 team queue(数据结构)

0x12 队列

# Java 常用代码片段