LOJ#10117. 「一本通 4.1 练习 2」简单题

题目描述

题目来源:$CQOI 2006$

有一个$n$个元素的数组,每个元素初始均为$0$。有$m$条指令,要么让其中一段连续序列数字反转——$0$变$1$,$1$变$0$(操作$1$),要么询问某个元素的值(操作$2$)。

例如当$n=20$时,$10$条指令如下:

操作 回答 操作后的数组
$1\ 1\ 10$ N/A $11111111110000000000$
$2\ 6$ $1$ $11111\underline{1}11110000000000$
$2\ 12$ $0$ $11111111110\underline{0}00000000$
$1\ 5\ 12$ N/A $11110000001100000000$
$2\ 6$ $0$ $11110\underline{0}00001100000000$
$2\ 15$ $0$ $11110000001100\underline 000000$
$1\ 6\ 16$ N/A $11110111110011110000$
$1\ 11\ 17$ N/A $11110111111100001000$
$2\ 12$ $1$ $11110111111\underline 100001000$
$2\ 6$ $1$ $11110\underline 111111100001000$

输入格式

第一行包含两个整数$n,m$,表示数组的长度和指令的条数;
以下$m$行,每行的第一个数$t$表示操作的种类:

  • 若$t=1$,则接下来有两个数$L,R$,表示区间$[L,R]$的每个数均反转;
  • 若$t=2$,则接下来只有一个数$i$,表示询问的下标。

输出格式

每个操作$2$输出一行(非$0$即$1$),表示每次操作$2$的回答。

样例

样例输入

20 10
1 1 10
2 6
2 12
1 5 12
2 6
2 15
1 6 16
1 11 17
2 12
2 6

样例输出

1
0
0
0
1
1

数据范围与提示

对于 $50\%$ 的数据,$1\le n\le 10^3,1\le m\le 10^4$;
对于 $100\%$ 的数据,$1\le n\le 10^5,1\le m\le 5\times 10^5$,保证 $L\le R$。


题解Here!

我怎么一看到这种题就开码线段树呢。。。
感觉自己像个制杖。。。
这个题直接树状数组不就好了?
用树状数组维护异或差分序列,每个元素的真实值是异或前缀和。
修改的时候改$l$和$r+1$两个点即可。
果然比线段树简单多了。。。
附带码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#define MAXN 100010
using namespace std;
int n,m,val[MAXN];
inline int read(){
int date=0,w=1;char c=0;
while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}
while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}
return date*w;
}
inline int lowbit(int x){return x&(-x);}
inline void update(int x){for(;x<=n;x+=lowbit(x))val[x]^=1;}
inline int query(int x){int s=0;for(;x;x-=lowbit(x))s^=val[x];return s;}
void work(){
int f,x,y;
n=read();m=read();
while(m--){
f=read();x=read();
if(f==1){
y=read();
update(x);update(y+1);
}
else printf("%d\n",query(x));
}
}
int main(){
work();
return 0;
}

LOJ#10117. 「一本通 4.1 练习 2」简单题的更多相关文章

  1. LOJ#10064. 「一本通 3.1 例 1」黑暗城堡

    LOJ#10064. 「一本通 3.1 例 1」黑暗城堡 题目描述 你知道黑暗城堡有$N$个房间,$M$条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设$D_i$为如果 ...

  2. LOJ #10131 「一本通 4.4 例 2」暗的连锁

    LOJ #10131 「一本通 4.4 例 2」暗的连锁 给一棵 \(n\) 个点的树加上 \(m\) 条非树边 , 现在需要断开一条树边和一条非树边使得图不连通 , 求方案数 . $n \le 10 ...

  3. Loj 10115 「一本通 4.1 例 3」校门外的树 (树状数组)

    题目链接:https://loj.ac/problem/10115 题目描述 原题来自:Vijos P1448 校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的 ...

  4. LOJ #10084. 「一本通 3.3 练习 1」最小圈(二分+SPFA判负环)

    题意描述: 见原LOJ:https://loj.ac/problem/10084 题解: 假设所求的平均最小值为X,环上各个边的权值分别为A1,A2...Ak,可以得到: X=(A1+A2+A3+.. ...

  5. LOJ #10132. 「一本通 4.4 例 3」异象石

    题目地址 LOJ 题解 神仙思路.思路参考自<算法竞赛进阶指南>. 考虑维护dfs序中相邻两个石头的距离,那么每次?的答案就是sum/2(首尾算相邻) 然后维护一下拿个平衡树/set维护一 ...

  6. LOJ #10222. 「一本通 6.5 例 4」佳佳的 Fibonacci

    题目链接 题目大意 $$F[i]=F[i-1]+F[i-2]\ (\ F[1]=1\ ,\ F[2]=1\ )$$ $$T[i]=F[1]+2F[2]+3F[3]+...+nF[n]$$ 求$T[n] ...

  7. LOJ#10065. 「一本通 3.1 例 2」北极通讯网络

    题目链接:https://loj.ac/problem/10065 题目描述 原题来自:Waterloo University 2002 北极的某区域共有 nnn 座村庄,每座村庄的坐标用一对整数 ( ...

  8. LOJ#10106. 「一本通 3.7 例 2」单词游戏

    题目链接:https://loj.ac/problem/10106 题目描述 来自 ICPC CERC 1999/2000,有改动. 有 NNN 个盘子,每个盘子上写着一个仅由小写字母组成的英文单词. ...

  9. LOJ#10172. 「一本通 5.4 练习 1」涂抹果酱

    题目链接:https://loj.ac/problem/10172 题目描述 Tyvj 两周年庆典要到了,Sam 想为 Tyvj 做一个大蛋糕.蛋糕俯视图是一个 N×MN×MN×M 的矩形,它被划分成 ...

随机推荐

  1. [转]解决Docker容器时间与主机不一致问题

    原文: https://blog.csdn.net/luckystar689/article/details/76572046 https://stackoverflow.com/questions/ ...

  2. 8.使用JPA保存数据【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/51636989 在看这一篇文档的话,需要先配置好JPA – hibernate. 总体步骤: ...

  3. linux命令之------vmstat使用

    在linux命令中,vmstat是个经常用到的分析系统性能的命令之一,主要有两个参数:一个是采样频率,一个是采样的次数.如:vmstat   1  3,意思就是每隔1秒采样1次,总共采样3次. 统计次 ...

  4. ubuntu+let's encrypt生成永久免费https证书 ubuntu+tomcat+nginx+let's encrypt

    1. 下载let's encrypt $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get update $ sudo apt-ge ...

  5. 【Java】Java_19递归算法

    1.递归算法 A方法调用B方法,我们很容易理解!递归就是:A方法调用A方法!就是自己调用自己,因此我们在设计递归算法时,一定要指明什么时候自己不调用自己.否则,就是个死循环! 1.1递归算法要点 递归 ...

  6. 基于webmagic的种子网站爬取

    代码地址如下:http://www.demodashi.com/demo/12175.html 1. 概述 因为无聊,闲来没事做,故突发奇想,爬个种子,顺便学习爬虫.本文将介绍使用Spring/Myb ...

  7. 《TCP/IP具体解释卷2:实现》笔记--IP的分片和重装

    IP首部内有三个字段实现分片和重装:标识字段(ip_id).标志字段(ip_off的3个高位比特)和偏移字段(ip_off的13个低位 比特).标志字段由3个1bit标志组成.比特0是保留的必须为0, ...

  8. mongoDB Java SDK CRUD操作例子

    Example:   package com.sdfwerwer.test; import java.net.UnknownHostException; import com.mongodb.Basi ...

  9. Android开发环境搭建 for windows (linux类似) 详细可参考“文件”中“Android开发环境搭建.pdf ”

    ADT-Bundle for Windows 是由Google Android官方提供的集成式IDE,已经包含了Eclipse,你无需再去下载Eclipse,并且里面已集成了插件,它解决了大部分新手通 ...

  10. ASP.NET CORE RAZOR :向 Razor 页面添加验证

    https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor-pages/validation 本部分中向 Movie 模型添加了验证逻辑. ...