poj 2777
来源:互联网 发布:sem和seo区别aso 编辑:程序博客网 时间:2024/05/22 06:04
线段树 + 位运算 位运算是很吊的存在。。
#include <cstdio>#include <cstring>#include <iostream>#include <stack>#include <queue>#include <vector>#include <map>#include <cmath>#include <set>#include <algorithm>using namespace std;typedef long long LL;typedef __int64 ll;#define Lson l,m,rt<<1#define Rson m+1,r,rt<<1|1#define Ls rt<<1#define Rs rt<<1|1int const MAXN = 100010;struct Tree{ int lazy,c;}tree[MAXN<<2];char s[3];inline void Swap(int &a,int &b){ int c = a; a = b; b = c;}inline void Push_Down(int rt){ if(tree[rt].lazy){ tree[Ls].lazy = tree[Rs].lazy = tree[rt].lazy; tree[Ls].c = tree[rt].c; tree[Rs].c = tree[rt].c; tree[rt].lazy = 0; }}inline void Push_Up(int rt){ tree[rt].c = tree[Ls].c | tree[Rs].c;}void Build(int l,int r,int rt){ tree[rt].c = 1; tree[rt].lazy = 0; if(l == r) return ; int m =(l + r)>>1; Build(Lson); Build(Rson);}void Update(int l,int r,int rt,int L,int R,int c){ if(L <= l && r <= R){ tree[rt].c = 1<<(c - 1); tree[rt].lazy = 1; return ; } Push_Down(rt); int m = (l + r)>>1; if(L <= m) Update(Lson,L,R,c); if(R > m) Update(Rson,L,R,c); Push_Up(rt);}void Query(int l,int r,int rt,int L,int R,int &c){ if(L <= l && r <= R){ c |= tree[rt].c; return ; } Push_Down(rt); int m = (l + r)>>1; if(L <= m) Query(Lson,L,R,c); if(R > m) Query(Rson,L,R,c); Push_Up(rt);}int main(){ int l,t,o; while(~scanf("%d%d%d",&l,&t,&o)){ Build(1,l,1); for(int i = 0;i < o;i++){ scanf("%s",s); int a = 0,b = 0,c = 0,sum = 0; if(s[0] == 'C'){ int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a > b) Swap(a,b); Update(1,l,1,a,b,c); } else{ scanf("%d%d",&a,&b); if(a > b) Swap(a,b); Query(1,l,1,a,b,c); //printf("%d\n",c); for(int i = 0;i < t;i++){ if(c & (1<<i)) sum++; } printf("%d\n",sum); } } } return 0;}
0 0
- poj 2777
- poj 2777
- poj 2777
- poj 2777
- poj 2777
- POJ 2777
- POJ 2777
- poj-2777
- poj 2777
- poj 2777
- POJ 2777
- poj 2777
- poj 2777
- poj 2777
- Poj 2777
- poj 2777
- poj 2777
- POJ-2777
- 单链队列的一个C代码实例
- JSONObject与JSONArray的使用
- AJAX 状态值与状态码详解
- javascript学习-原生javascript的小特效(多物体运动效果)
- 顺序栈
- poj 2777
- MVC已过时,MOVE时代来临
- CSS:权重和层叠规则决定了其优先级
- J粒子发现40周年-丁肇中中科院讲座笔记
- UVA 272 Tex中的引号
- 第8周项目5-定期存款利息计算器
- http下载图片
- 没带手机口味
- “掌商工程”让海派盆景与白领互添绿意