E

link



这个题目中所说的好的其实就是像\(010101\)这样一个\(0\),一个\(1\)的字符串。

那么不好的就是两个\(0\)或两个\(1\)在一起,所以判断一个区间好不好只需要判断一个区间内有没有两个\(0\)或两个\(1\)在一起,那么我们可以把两个\(0\)或两个\(1\)在一起的位置存下来。

先考虑查询操作。

我们只需要判断\(l\)到\(r\)之间有没有两个\(0\)或两个\(1\)在一起,如果所存的位置是升序的,可以直接用二分来做,于是想到了\(set\)。

再考虑修改。

其实修改就是开头和结尾会改变,那么如果原来的开头是好的(\(set\)里没有),那么会变成坏的,反之亦然。结尾也一样。

点击查看代码
#include<bits/stdc++.h>

#define int long long

using namespace std;

int n,q;
char s[500005];
set<int> st; signed main(){ cin >> n >> q;
cin >> s+1; for(int i = 2;i <= n;++ i)
if(s[i] == s[i-1]) st.insert(i); while(q--){ int op,l,r;
cin >> op >> l >> r; if(op == 1){
if(l > 1){
if(st.count(l)){
st.erase(l);
}
else st.insert(l);
}
if(r < n){
if(st.count(r+1)){
st.erase(r+1);
}
else st.insert(r+1);
}
} if(op == 2){
auto it = st.upper_bound(l);
if(it == st.end()||*it > r){
cout << "Yes\n";
}
else cout << "No\n";
} } return 0; }

随机推荐

  1. 小程序转发 搜索wxml

    新闻转发 在小程序中要不通过菜单项来完成分享功能,只能通过表单组件中的按钮来完成. 它是通过按钮中的开放能力完成 按钮自定义处理 新闻搜索 搜索wxml 搜索业务的js

  2. 夜莺项目发布 v6.1.0 版本,增强可观测性数据串联

    大家好,夜莺项目发布 v6.1.0 版本,这是一个中版本迭代,不止是 bugfix 了,而是引入了既有功能的增强.具体增强了什么功能,下面一一介绍. 1. 增强可观测性数据串联 从 v6.1.0 开始 ...

  3. SRE心里话:要求100%服务可用性就是老板的无知

    <SRE Google 运维解密>第3章讲了拥抱风险,一些关键的观点,在这里与大家分享,融入了我自己的一些理解,希望对你有些帮助. 服务可用性必须100%?其实完全没必要 一个服务客户的产 ...

  4. ISO pod 使用

    pod 安装 相关依赖包 新建podfile 文件 pod init 编辑podfile文件添加第三方库 // pod '第三方依赖库名', '版本号' pod 'SDWebImageSwiftUI' ...

  5. linux日志查询less及堡垒机查询日志方法

    方法1tail -f orderFile.log | grep "关键字" postman接口请求的时候,关注控制台对关键字过滤的打印输出. 方法2less 文件名称/ 关键字n ...

  6. python类和对象初识

    # python类和对象初识 a = 2 b = 3 print(id(a)) print(type(a)) print(a) print(id(b)) print(type(b)) print(b) ...

  7. FreeRTOS简单内核实现3 任务管理

    0.思考与回答 0.1.思考一 对于 Cotex-M4 内核的 MCU 在发生异常/中断时,哪些寄存器会自动入栈,哪些需要手动入栈? 会自动入栈的寄存器如下 R0 - R3:通用寄存器 R12:通用寄 ...

  8. 漏洞复现之CVE-2012-1823(PHP-CGI远程代码执行)

    关于CGI知识点 `CGI模式下的参数: -c 指定php.ini文件的位置 -n 不要加载php.ini文件 -d 指定配置项 -b 启动fastcgi进程 -s 显示文件源码 -T 执行指定次该文 ...

  9. Exception:kylin构建cube, Cannot modify mapReduce.queue.name at runtime

    Failed to open new session: java.lang.IllegalArgumentException: Cannot modify tez.queue.name at runt ...

  10. 配置h5py、netCDF4库的方法:Anaconda环境

      本文介绍基于Anaconda环境,下载并安装Python中h5py与netCDF4这两个模块的方法.   在Python语言中,h5py与netCDF4这两个模块是与遥感图像处理.地学分析等GIS ...