题目链接:1540 Tunnel Warfare

以为单组输入 这个题多组输入

结构体记录每个区间左边和右边的连续区间 ms记录最大

在查询操作时:

1、这个点即将查询到右区间 看这个点 x 是否存在于右区间的ls 如果存在说明有可能 左区间的rs 和右区间的 ls 是连续的 这时候我们要考虑查询两个区间并且 值想加

查询 左区间的时候同理

#include<bits/stdc++.h>
using namespace std;
#define maxn 500010
struct ac{
  int ls,rs,ms;
}a[maxn];
int b[maxn];
void build(int l,int r,int in){
   if(l==r){
      a[;
      return ;
   }
   ;
   build(l,mid,);
   build(mid+,r,+);
   a[].ms+a[+].ms);
}
void updata(int l,int r,int in,int z,int i){
   if(l==r){
      ){
         a[;
      }else{
         a[;
      }
      return ;
   }
   ;
   if(z>mid){
      updata(mid+,r,+,z,i);
   },z,i);
   ,rr=+;
   a[in].ls=a[ll].ls;
   a[in].rs=a[rr].rs;
   a[in].ms=max(a[ll].ms,max(a[rr].ms,a[ll].rs+a[rr].ls));
   )){
      a[in].ls+=a[rr].ls;
   }
   if(a[rr].rs==(r-mid)){
      a[in].rs+=a[ll].rs;
   }
}
int query(int l,int r,int in,int z){
   ))||(a[)||(l==r)){
      return a[in].ms;
   }
   ;
   if(z>mid){
      +].ls){
         ,r,+,z)+query(l,mid,,mid);
      },r,+,z);
   }else{
      ].rs+){
         ,z)+query(mid+,r,+,mid+);
      },z);
   }
}
int main(){
   int n,m;
   while(cin>>n>>m){
       build(,n,);
       ;
       ;j<m;j++){
          ];
          int x;
          cin>>c;
          ]=='D'){
             cin>>x;
             b[++len]=x;
             updata(,n,,x,);
          }]=='R'){
             >=)
               updata(,n,,b[len--],);
          }else{
             cin>>x;
             cout<<query(,n,,x)<<endl;
          }
       }
   }
}

最新文章

  1. 数据库大数据处理---复制(SQLServer)
  2. Python数据类型之“文本序列(Text Sequence)”
  3. 记一次ganglia的故障分析 mem_report不显示
  4. 牛X的CSS3
  5. [备份]Emacs配置文件
  6. Android自定义View (二) 进阶
  7. F2工作流引擎模型
  8. Abstract和Virtual和interface , 派生类中重写 override / new关键字
  9. 北京联想招聘-java 云服务开发工程师 加入qq 群:220486180 或者直接在此 留言咨询
  10. signalR的一些细节
  11. 头文件定义和ARM指令
  12. jstl的mavin依赖
  13. Spring mvc json null
  14. Win7构造wifi热点【Written By KillerLegend】
  15. shell dev null 是什么
  16. 使用ptrace向已运行进程中注入.so并执行相关函数
  17. 利用ssh反向代理以及autossh实现从外网连接内网服务器
  18. 第一天的Python之路 笔记
  19. PDF.js 分片下载的介绍2:分片下载demo
  20. linux服务器账号密码正确无法登录

热门文章

  1. day 7-13 数据库的数据类型
  2. VSCode 汉化
  3. python爬虫之Gerapy安装部署
  4. python爬虫之scrapy安装(一)
  5. ArcGIS中使用异步回调函数查询图层Graphic
  6. OSError: mysql_config not found
  7. LODOP中预览界面查看打印机的可打区域具体值
  8. 去掉AMD锐龙和Intel Kaby Lake的不支持的硬件的提示
  9. Nginx 缓存针对打开的文件句柄与原文件信息
  10. Ubuntu基于zsh自定义设置shell主题