题目:
分析:
1.deque就是一个两头操作的队列。
2.有头插,尾插:push_front()/push_back()。
3.有头删,尾删:pop_front()/pop_back()。
4.然后再用一些工作性算法:sort(排序),reverse(倒置)。
知道这些之后做这道题就很简单了。
源码:
include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
char c[maxn];
deque
int main()
{
int n, m, x, y;
scanf("%d%d", &n, &m);
while (m--)
{
scanf("%d", &x);
{
if (x == 1)
{
scanf("%d", &y);
q.push_front(y);
}
else if (x == 2)
q.pop_front();
else if (x == 3)
{
scanf("%d", &y);
q.push_back(y);
}
else if (x == 4)
q.pop_back();
else if (x == 5)
reverse(q.begin(), q.end());
else if (x == 6)
{
printf("%d\n", q.size());
for (int i = 0; i < q.size(); ++i)
printf("%d ", q[i]);
puts("");
}
else
sort(q.begin(), q.end());
}
}
}
最后一次更新于2022-01-23
0 条评论