P5057 [CQOI2006]简单题(线段树)
果然简单题,5分钟紫题++
代码
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int tag[100100<<2],n,m;
void pushdown(int o){
if(tag[o]){
tag[o<<1]^=1;
tag[o<<1|1]^=1;
tag[o]=0;
}
}
void update(int L,int R,int l,int r,int o){
if(L<=l&&r<=R){
tag[o]^=1;
return;
}
pushdown(o);
int mid=(l+r)>>1;
if(L<=mid)
update(L,R,l,mid,o<<1);
if(R>mid)
update(L,R,mid+1,r,o<<1|1);
}
int query(int L,int R,int pos,int o){
if(L==R){
return tag[o];
}
pushdown(o);
int mid=(L+R)>>1;
if(pos<=mid)
return query(L,mid,pos,o<<1);
else
return query(mid+1,R,pos,o<<1|1);
}
int main(){
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++){
int opt;
scanf("%d",&opt);
if(opt==1){
int l,r;
scanf("%d %d",&l,&r);
update(l,r,1,n,1);
}
else{
int pos;
scanf("%d",&pos);
printf("%d\n",query(1,n,pos,1));
}
}
return 0;
}
P5057 [CQOI2006]简单题(线段树)的更多相关文章
- 洛谷P5057 [CQOI2006]简单题(线段树)
题意 题目链接 Sol 紫色的线段树板子题??... #include<iostream> #include<cstdio> #include<cmath> usi ...
- 洛谷 P5057 [CQOI2006]简单题(树状数组)
嗯... 题目链接:https://www.luogu.org/problem/P5057 首先发现这道题中只有0和1,所以肯定与二进制有关.然后发现这道题需要支持区间更改和单点查询操作,所以首先想到 ...
- 「CQOI2006」简单题 线段树
「CQOI2006」简单题 线段树 水.区间修改,单点查询.用线段树维护区间\([L,R]\)内的所有\(1\)的个数,懒标记表示为当前区间是否需要反转(相对于区间当前状态),下方标记时懒标记取反即可 ...
- 洛谷 P5057 [CQOI2006]简单题 题解
P5057 [CQOI2006]简单题 题目描述 有一个 n 个元素的数组,每个元素初始均为 0.有 m 条指令,要么让其中一段连续序列数字反转--0 变 1,1 变 0(操作 1),要么询问某个元素 ...
- P5057 [CQOI2006]简单题
题目描述 有一个 n 个元素的数组,每个元素初始均为 0.有 m 条指令,要么让其中一段连续序列数字反转——0 变 1,1 变 0(操作 1),要么询问某个元素的值(操作 2). 例如当 n = 20 ...
- 洛谷 P5057 [CQOI2006]简单题 (树状数组,位运算)
题意:有一个长度为\(n\)的数组,进行\(m\)次操作,每次读入一个值\(t\),如果\(t=1\),则将区间\([l,r]\)的数字反转,若\(t=2\),则查询下标为\(i\)的值. 题解:树状 ...
- P5057 [CQOI2006]简单题 前缀异或差分/树状数组
好思路,好思路... 思路:前缀异或差分 提交:1次 题解:区间修改,单点查询,树状数组,如思路$qwq$ #include<cstdio> #include<iostream> ...
- [洛谷P5057][CQOI2006]简单题
题目大意:有一个长度为$n$的$01$串,两个操作: $1\;l\;r:$把区间$[l,r]$翻转($0->1,1->0$) $2\;p:$求第$p$位是什么 题解:维护前缀异或和,树状数 ...
- P5057 【[CQOI2006]简单题】
洛谷P5057[CQOI2006]简单题 差分 树状数组基本操作不说了,主要想记录一下异或下的差分 a数组为每一位的真实值(假设\(a[0]=0\)),t为差分后的数组 则\(t[i]=a[i]\)^ ...
随机推荐
- 安装模块时报错“error: Microsoft Visual C++ 14.0 is required…”
安装pymssql时报错:在安装的过程中遇到了“error: Microsoft Visual C++ 14.0 is required…” 解决办法: 进入https://www.lfd.uci.e ...
- Robot - 1. robot framework环境搭建
Fom:https://www.cnblogs.com/puresoul/p/3854963.html 一. robot framework环境搭建: 官网:http://robotframework ...
- Lua 服务器与客户端实例
=============================================================== 服务器,main.lua ======================= ...
- win7 64位 python启动报错:无法启动此程序,因为计算机中丢失api-ms-win-crt-process-l1-1-0.dll
安装python3.7,安装成功后,在cmd窗口输入python检查是否安装成功,报错:无法启动此程序,因为计算机中丢失api-ms-win-crt-process-l1-1-0.dll 在网上查询了 ...
- xshell的一些基本操作
挺全面的一篇文章,没事可以看看. (1)命令ls——列出文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* 列出当前目录下以字母a开头的所有文件 l ...
- qt5.5.1 移植4412的问题过程
1.编译错误: ../WTF/wtf/unicode/wchar/UnicodeWchar.h: In function 'bool WTF::Unicode::isAlphanumeric(UCha ...
- 设计模式之State(状态)(转)
State的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为. 何时使用? State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif ...
- flask 对URL进行安全验证
对URL进行安全验证 虽然我们已经实现了重定向会上一个页面的功能,但是安全问题不容忽视,鉴于referer和next容易被串篡改的特性,我们需要对这些值进行验证,否则会形成开放重定向漏洞 以URL ...
- notepad 正则表达式 复制 文本
- gets函数
gets函数 gets函数从标准输入读取一行文本并把它存储在作为参数传递给它的数组中 一行输入由一串字符组成,以一个换行符(newline)结尾 gets函数丢弃换行符,并在该行的末 ...