• 题意:有一个一维的书架,\(L\)表示在最左端放一本书,\(R\)表示在最右端放一本书,\(?\)表示从左数或从右数,最少数多少次才能得到要找的书.

  • 题解:我们开一个稍微大一点的数组,从它的中间开始模拟,\(L\)就--\(l\)放进去,\(R\)就++\(r\)放进去,然后每次更新某一本书的最新位置,因为后放的肯定离最左侧或最右侧最近,然后两端求差弄个最小值就行.

  • 代码:

    int q;
    char c;
    int idx;
    int ans;
    int mp[2*N],now[2*N]; int main() {
    ios::sync_with_stdio(false);cin.tie(0);
    cin>>q;
    int l=N+1,r=N;
    for(int i=1;i<=q;++i){
    cin>>c>>idx;
    if(c=='L'){
    mp[--l]=idx;
    now[idx]=l;
    }
    else if(c=='R'){
    mp[++r]=idx;
    now[idx]=r;
    }
    else{
    ans=min(now[idx]-l,r-now[idx]);
    cout<<ans<<endl;
    }
    }
    return 0;
    }

最新文章

  1. java并发编程(八)多线程环境下安全使用集合
  2. Memcached和Memcache安装(64位win7)
  3. 流式布局&amp;固定宽度&amp;响应式&amp;rem
  4. Soket编程
  5. (六)6.6 Neurons Networks PCA
  6. [转] C#中绘制矢量图形
  7. velocity自定义动画
  8. ZendFramework2 文件结构
  9. java 写文件解析
  10. java中读取特殊文件的类型
  11. 关于HTTP请求、Ajax请求,请求的同步和异步
  12. jsp篇 之 jsp中的注释
  13. 2.解决虚拟机中centos联网的问题
  14. 原创SQlServer数据库生成简单的说明文档包含(存储过程、视图、数据库批量备份)小工具(附源码)
  15. 由 POST 400 错误拔出来的萝卜
  16. 80端口被占用 导致apach无法启动问题
  17. centos7升级内核版本
  18. 关于set和map迭代器支持的运算
  19. 通过plsql develop查看建表语句
  20. mingw 搭建Emscripten 环境

热门文章

  1. linux系统中set、env、export关系
  2. 关于SET/GET PARAMETER ID的注意事项
  3. 基于 WebRTC 实现自定义编码分辨率发送
  4. Docker相关简介以及使用方法
  5. Py迭代和迭代器,生成器,生产者和消费者模型
  6. USB2514集线器调试总结
  7. 一步步使用SpringBoot结合Vue实现登录和用户管理功能
  8. argparse的简单使用
  9. 获取当前文件路径 import 原理 一般把模块组成的集合称为包(package)
  10. Python学习【第7篇】:字符串拼接