codevs1191 数轴染色
来源:互联网 发布:雷阿伦得分数据 编辑:程序博客网 时间:2024/04/28 02:41
这个加上lazy也没多大意义吧- -
#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>#include<algorithm>#include<string>#include<vector>#include<map>#include<set>#include<queue>#define R0(i,n) for(int i=0;i<n;++i)#define R1(i,n) for(int i=1;i<=n;++i)#define cl(x,c) memset(x,c,sizeof x)#define INF 0x7fffffffusing namespace std;typedef long long ll;int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int n,m;struct node{ int l,r,v,lazy;}tr[800001];void build(int k,int x,int y){tr[k].l=x;tr[k].r=y;if(x==y){tr[k].v=1;return;}int mid=(x+y)>>1;build(k<<1,x,mid);build(k<<1|1,mid+1,y);tr[k].v=tr[k<<1].v+tr[k<<1|1].v;}void change(int k,int x,int y){if(tr[k].v==0)return;int l=tr[k].l,r=tr[k].r;if(l==x&&r==y){tr[k].v=0;return;}int mid=(l+r)>>1;if(mid>=y)change(k<<1,x,y);else if(mid<x)change(k<<1|1,x,y);else { change(k<<1,x,mid); change(k<<1|1,mid+1,y);}tr[k].v=tr[k<<1].v+tr[k<<1|1].v;}int main(){int x,y;n=read(),m=read();build(1,1,n);R1(i,m){x=read(),y=read();change(1,x,y);printf("%d\n",tr[1].v);}return 0;}
0 0
- codevs1191 数轴染色
- 【codevs1191】数轴染色
- [codevs1191]数轴染色
- Codevs1191数轴染色
- 【codevs1191】数轴染色 并查集
- 【codevs1191】数轴染色 并查集
- [codevs1191]数轴染色 并查集
- CodeVS1191 数轴染色 解题报告【并查集】
- 数轴染色
- 数轴染色
- Wikioi-1191-数轴染色
- wiki-1191数轴染色
- 【wikioi1191】 数轴染色
- wikioi1191 数轴染色
- Codevs 数轴染色
- 1191 数轴染色
- Codevs 1191 数轴染色
- 【codevs 1191】数轴染色
- draw 边框 xml
- 遇到一个gcc编译器版本导致的运行结果有差异的问题
- 漫步IOS--字典类(NSDictionary)
- 【转】WINCE6.0 远程工具,不能使用ActiveSync连接的问题
- java文件上传带进度条的
- codevs1191 数轴染色
- 关于驾车宝车载空气净化器
- 遇到一个打开文件方式“w+”和“a+”的问题
- hibernate注解关联
- 编写SQRT.m文件以实现求一个数的平方根
- WIN XP解決忘記用戶登入密碼
- 让rhel支持中文
- html网页表单中禁用复制、右键、粘贴、剪切等方法
- Java中String、StringBuilder和StringBuffer的简单区别