SPOJ - ADAQUEUE ,双端队列简单运用!
2024-09-26 21:03:11
ADAQUEUE - Ada and Queue
表示这题是学弟带的榜,题还没看完,学弟吐了一句:这不就是双端队列嘛。于是掏出布满尘埃的《曾粽根ACM程序设计》,嗯,确实是裸题,现学现做。
题意:若干操作,每次可以在队首加入元素,可以在队尾加入元素,也可以翻转整个序列,查询最前面的或者最后面的数。操作数10^6。
除了翻转不用实际操作,其他的就是双端队列加入和删除操作了,若是翻转我们可以设置一个变量来表示状态,然后实时更新。
char s[N];
int main()
{
int Q;
while(~scanf("%d",&Q))
{
deque<int>q;
int f=1,x,len=0;
while(Q--)
{
scanf("%s",s);
if(s[0]=='t')
{
scanf("%d",&x);
if(f==1) q.push_front(x);
else q.push_back(x);
len++;
}
if(s[0]=='p')
{
scanf("%d",&x);
if(f==1) q.push_back(x);
else q.push_front(x);
len++;
}
if(s[0]=='r') f^=1;
if(s[0]=='b')
{
if(!len) puts("No job for Ada?");
else
{ if(f) printf("%d\n",q[len-1]),q.pop_back();
else printf("%d\n",q[0]),q.pop_front();
len--;
}
}
if(s[0]=='f')
{
if(!len) puts("No job for Ada?");
else
{ if(f) printf("%d\n",q[0]),q.pop_front();
else printf("%d\n",q[len-1]),q.pop_back();
len--;
}
}
}
}
return 0;
}
对双端队列有疑问可以参考我前一篇博客。
往下拉
再往下拉..
哈哈,没有!
怎么可能没有,前一篇博客嘛,当然是直接找上一篇咯。还傻傻的到这来。
最新文章
- Android图片选择器
- iOS歌词逐渐变色动画
- Node.js的学习路线
- jquery属性选择器(匹配具有指定属性的元素)
- Java http方式提交短信到短信网关
- Windows10的快捷键和新功能你利用了多少?
- C# 鼠标悬停在datagridview的某单元格,显示悬浮框效果
- php执行的困惑
- 打包C#程序
- URAL 1029
- Object的wait()/notify()
- Linux Tomcat 自启动
- rabbitMQ教程(二)一篇文章看懂rabbitMQ
- PeopleSoft如何查找jar包冲突
- VM安装系统时提示硬件不支持(unsupported hardware detected)
- PAT 1002 写出这个数 (20)(代码)
- HTTP1.1协议请求方面参数
- BZOJ 2594 【WC2006】 水管局长数据加强版
- Sublime插件WakaTime使用
- 树dp...吧 ZOJ 3949