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;
}

对双端队列有疑问可以参考我前一篇博客。

往下拉

再往下拉..

哈哈,没有!

怎么可能没有,前一篇博客嘛,当然是直接找上一篇咯。还傻傻的到这来。

最新文章

  1. Android图片选择器
  2. iOS歌词逐渐变色动画
  3. Node.js的学习路线
  4. jquery属性选择器(匹配具有指定属性的元素)
  5. Java http方式提交短信到短信网关
  6. Windows10的快捷键和新功能你利用了多少?
  7. C# 鼠标悬停在datagridview的某单元格,显示悬浮框效果
  8. php执行的困惑
  9. 打包C#程序
  10. URAL 1029
  11. Object的wait()/notify()
  12. Linux Tomcat 自启动
  13. rabbitMQ教程(二)一篇文章看懂rabbitMQ
  14. PeopleSoft如何查找jar包冲突
  15. VM安装系统时提示硬件不支持(unsupported hardware detected)
  16. PAT 1002 写出这个数 (20)(代码)
  17. HTTP1.1协议请求方面参数
  18. BZOJ 2594 【WC2006】 水管局长数据加强版
  19. Sublime插件WakaTime使用
  20. 树dp...吧 ZOJ 3949

热门文章

  1. AJPFX分享JAVA修饰符详解
  2. [jQuery] Cannot read property ‘msie’ of undefined错误的解决方法 --转
  3. 远程linux服务器mysql数据库定期备份和删除
  4. 洛谷P1036 选数
  5. spark简单入门
  6. c语言实验7 文件
  7. CPP-基础:wchar_t
  8. Python-DB接口规范
  9. javaEE(16)_Servlet监听器
  10. C语言格式化说明符