Wikilo 1191线段树区间修改单点查询
来源:互联网 发布:中国对外援助知乎 编辑:程序博客网 时间:2024/05/16 16:00
这题也算比较容易的了。
如果哪个区间已经没有黑色的话,就不用update了,就是因为这个原因WA了2发,唉……
#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <deque>#include <vector>#include <queue>#include <string>#include <cstring>#include <map>#include <stack>#include <set>#define PI acos(-1.0)#define mem(a,b) memset(a,b,sizeof(a))#define sca(a) scanf("%d",&a)#define sc(a,b) scanf("%d%d",&a,&b)#define pri(a) printf("%d\n",a)#define lson i<<1,l,mid#define rson i<<1|1,mid+1,r#define MM 2000004#define MN 1008#define INF 2000000000#define eps 1e-8using namespace std;typedef long long ll;typedef unsigned long long ULL;ll sum[MM];int val[MM];void pushUp(int i){ sum[i]=sum[i<<1]+sum[i<<1|1];}void pushDown(int i){ if(val[i]) { sum[i]=sum[i<<1]=sum[i<<1|1]=0; val[i]=0; }}void build(int i,int l,int r){ if(l==r) { sum[i]=1; return ; } int mid=(l+r)>>1; build(lson),build(rson); pushUp(i);}void update(int i,int l,int r,int L,int R){ if(L<=l&&r<=R) { val[i]=1; sum[i]=0; return ; } int mid=(l+r)>>1; pushDown(i); if(sum[i]) //如果这个i的区间已经为0就不用再进行下去了 { if(L>mid) update(rson,L,R); else if(R<=mid) update(lson,L,R); else { update(lson,L,mid); update(rson,mid+1,R); } } pushUp(i);}int main(){ int n,m,l,r; sc(n,m); build(1,1,n); while(m--) { sc(l,r); update(1,1,n,l,r); printf("%lld\n",sum[1]); } return 0;}
0 0
- Wikilo 1191线段树区间修改单点查询
- 【数据结构】【线段树】单点修改区间查询
- 线段树(单点修改,区间查询)
- 线段树(区间修改,单点查询)
- HDU1166 线段树 单点修改、区间查询
- POJ 2155 Matrix 二维线段树 区间修改 单点查询
- hdu 1754 线段树单点修改+区间查询
- hdu 4819 二维线段树,单点修改区间查询
- 考试 线段树二分+单点修改+区间查询
- [模板练习]线段树的单点修改和区间查询
- HDU1166_敌兵布阵_线段树单点修改区间查询
- 线段树——区间查询+单点修改
- 线段树 单点修改,区间修改
- 【线段树】区间求和+单点修改
- 【线段树】单点求值+区间修改
- zoj (单点更新区间查询:线段树)
- 线段树单点更新和区间查询
- hdu1166(线段树单点更新区间查询)
- MATLAB下的程序调试
- eclipse 搭建Struts
- 开始写博客
- 在arcgis的help中学习方法
- 跨时钟域的寄存器访问
- Wikilo 1191线段树区间修改单点查询
- 黑马程序员---指针函数 函数指针 指针数组 解析
- ubuntu 安装 openssh-server 直接使用SecureCRT作为ubuntu的远程终端
- C语言之路
- poj3744之矩阵快速幂+概率DP
- operator——内置操作符的函数接口
- SVN基本介绍
- Java学习笔记_6_数组的排序和查找
- MySQL的information_schema数据库是什么,有什么作用