「CQOI2006」简单题 线段树

水。区间修改,单点查询。用线段树维护区间\([L,R]\)内的所有\(1\)的个数,懒标记表示为当前区间是否需要反转(相对于区间当前状态),下方标记时懒标记取反即可。

#include <cstdio>
#include <cmath>
#define sl (x<<1)
#define sr (x<<1|1)
#define MAXN 100010
using namespace std;
struct nod{
int l; int r;
bool lazy; int val;
} tre[MAXN*4];
void buildt(int l, int r, int x){
tre[x].l=l,tre[x].r=r;
if(l==r){
tre[x].val=0;
return;
}
int mid=(l+r)>>1;
buildt(l, mid, x<<1);
buildt(mid+1, r, x<<1|1);
}
void push_down(int x){
if(tre[x].lazy==0) return;
tre[sl].lazy=!tre[sl].lazy;
tre[sr].lazy=!tre[sr].lazy;
if(tre[x].lazy) tre[sl].val=(tre[sl].r-tre[sl].l+1)-tre[sl].val;
if(tre[x].lazy) tre[sr].val=(tre[sr].r-tre[sr].l+1)-tre[sr].val;
tre[x].lazy=0;
}
void change(int x, int ql, int qr){
if(ql<=tre[x].l&&tre[x].r<=qr){
tre[x].val=tre[x].r-tre[x].l+1-tre[x].val;
tre[x].lazy=!tre[x].lazy;
return;
}
push_down(x);
int mid=(tre[x].l+tre[x].r)>>1;
if(ql<=mid) change(sl,ql,qr);
if(qr>mid) change(sr,ql,qr);
tre[x].val=tre[sl].val+tre[sr].val;
}
int query(int x, int q){
if(tre[x].l==tre[x].r){
return tre[x].val;
}
push_down(x);
int mid=(tre[x].l+tre[x].r)>>1;
int ans=0;
if(q<=mid) ans=query(sl,q);
else ans=query(sr,q);
tre[x].val=tre[sl].val+tre[sr].val;
return ans;
}
int n,m;
int main()
{
scanf("%d %d", &n, &m);
buildt(1,n,1);
while(m--){
int t;
scanf("%d", &t);
if(t==1){
int l,r;
scanf("%d %d", &l, &r);
change(1,l,r);
}else{
int i;scanf("%d", &i);
printf("%d\n", query(1,i));
}
}
return 0;
}

「CQOI2006」简单题 线段树的更多相关文章

  1. 洛谷P5057 [CQOI2006]简单题(线段树)

    题意 题目链接 Sol 紫色的线段树板子题??... #include<iostream> #include<cstdio> #include<cmath> usi ...

  2. 「洛谷4197」「BZOJ3545」peak【线段树合并】

    题目链接 [洛谷] [BZOJ]没有权限号嘤嘤嘤.题号:3545 题解 窝不会克鲁斯卡尔重构树怎么办??? 可以离线乱搞. 我们将所有的操作全都存下来. 为了解决小于等于\(x\)的操作,那么我们按照 ...

  3. 「洛谷3870」「TJOI2009」开关【线段树】

    题目链接 [洛谷] 题解 来做一下水题来掩饰ZJOI2019考炸的心情QwQ. 很明显可以线段树. 维护两个值,\(Lazy\)懒标记表示当前区间是否需要翻转,\(s\)表示区间还有多少灯是亮着的. ...

  4. LOJ2255. 「SNOI2017」炸弹 (线段树)

    本文为线段树做法 (听说可以tarjan缩点+拓扑? 感觉差不多..而且这样看起来方便很多 找到左端点的过程可以看作 点 -> 区间内lowerbound最小的点 -> lowerboun ...

  5. LOJ 2585 「APIO2018」新家 ——线段树分治+二分答案

    题目:https://loj.ac/problem/2585 算答案的时候要二分! 这样的话,就是对于询问位置 x ,二分出一个最小的 mid 使得 [ x-mid , x+mid ] 里包含所有种类 ...

  6. 2018.11.01 loj#2319. 「NOIP2017」列队(线段树)

    传送门 唉突然回忆起去年去noipnoipnoip提高组试水然后省二滚粗的悲惨经历... 往事不堪回首. 所以说考场上真的有debuffdebuffdebuff啊!!!虽然当时我也不会权值线段树 这道 ...

  7. LOJ2319. 「NOIP2017」列队【线段树】

    LINK 思路 神仙线段树 你考虑怎么样才能快速维护出答案 首先看看一条链怎么做? 首先很显然的思路是维护每个节点的是否出过队 然后对于重新入队的点 直接在后面暴力vector存一下就可以了 最核心的 ...

  8. Solution -「洛谷 P5787」「模板」二分图(线段树分治)

    \(\mathcal{Description}\)   Link.    \(n\) 个结点的图,\(m\) 条形如 \((u,v,l,r)\) 的边,表示一条连接 \(u\) 和 \(v\) 的无向 ...

  9. 「洛谷 P3834」「模板」可持久化线段树 题解报告

    题目描述 给定n个整数构成的序列,将对于指定的闭区间查询其区间内的第k小值. 输入输出格式 输入格式 第一行包含两个正整数n,m,分别表示序列的长度和查询的个数. 第二行包含n个整数,表示这个序列各项 ...

随机推荐

  1. 音视频入门-01-认识RGB

    * 音视频入门文章目录 * RGB 简介 RGB 色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB 即是代表红 ...

  2. Uwl.Admin开源框架(一)

    1.前言 作为一个忠实的软粉,一直期待微软出跨平台,一直在等待.Net Core,因为刚毕业对于.Net的很多东西不是很熟知,就开始了.Net Core的摸索,一路上坎坎坷坷,对于新技术一直很期待,就 ...

  3. eclipse设置各种编码

    https://blog.csdn.net/qq_32786873/article/details/81910022

  4. IOC实现-Unity

    .NET中实现IOC有很多方式,比如:Unity.Ninject.Autofac.MEFNinject的实现参考<Pro ASP.NET MVC3.5 FrameWork>下面给出的是Un ...

  5. Unity NavMesh 格式 解析 分析 对比 Recast Navigation

    工具软件 Excel Nodepad++ Sublime Unity 5.4 / 5.6 VS RecastDemo CodeBlocks 分析过程以Unity项目-Demo13为例 一. 创建测试模 ...

  6. C++ sizeof(struct) 的注意

    今天在测试将C++代码导出的NavMesh二进制文件用一套C#改写的代码导入时,发现导入的数据出现不一致的问题. 分别在C++和C#AddTile的函数内设置断点,观察最后得到的tile有大部分的字段 ...

  7. java调用.net的webservice接口

    要调用webservice,首先得有接口,用已经写好的接口地址在myEclipse的目标project中,右键->new web service client-> 选择JAX-WS方式,点 ...

  8. [LeetCode] 17. 电话号码的字母组合 ☆☆☆(回溯) ###

    描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23"输出:[&q ...

  9. Image Processing and Analysis_21_Scale Space:Scale-space theory A basic tool for analysing structures at different scales——1994

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  10. springboot学习链接

    https://github.com/wuyouzhuguli/SpringAll