#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define N 1000005
using namespace std; int c[];
int tree[N*];//正值表示该节点所管理的区间的颜色是纯色,-1表示的是非纯色
int n, m; void buildT(int ld, int rd, int p){
if(ld <= rd){
tree[p] = ;//初始每一个节点的颜色全部都是2
if(ld == rd) return;
int mid=(ld + rd)>>;
buildT(ld, mid, p<<);
buildT(mid+, rd, p<<|);
}
} void updateT(int ld, int rd, int a, int b, int col, int p){ if(ld > rd) return ; if(tree[p] == col) return ; if(ld == a && rd == b){
tree[p] = col;
return ;
}
int mid = (ld + rd)>>; if(tree[p] != -){// p所管的区间之前是纯色,现在不是纯色了,向下更新其孩子节点的颜色为它的颜色
tree[p<<] = tree[p<< | ] = tree[p];
tree[p] = -;
} if(a > mid)
updateT(mid+, rd, a, b, col, p<< | );
else if(b <= mid)
updateT(ld, mid, a, b, col, p<<);
else{
updateT(ld, mid, a, mid, col, p<<);
updateT(mid+, rd, mid+, b, col, p<< | );
}
} int cnt; void querryT(int ld, int rd, int a, int b, int p){
if(ld>rd) return ; if(tree[p] != -){//一直找到纯色的区间!
c[tree[p]]=;
return ;
} int mid = (ld+rd)>>;
if(a > mid)
querryT(mid+, rd, a, b, p<< | );
else if(b <= mid)
querryT(ld, mid, a, b, p<<) ;
else{
querryT(ld, mid, a, mid, p<<);
querryT(mid+, rd, mid+, b, p<< | );
}
} int main(){
while(scanf("%d%d", &n, &m) && (n || m)){
char ch[];
int a, b, k;
buildT(, n, );
while(m--){
scanf("%s", ch);
if(ch[] == 'P'){
scanf("%d%d%d", &a, &b, &k);
updateT(, n, a, b, k, );
}
else{
scanf("%d%d", &a, &b);
memset(c, , sizeof(c));
querryT(, n, a, b, );
int i;
for(i=; i<=; ++i)
if(c[i]){
printf("%d", i);
break;
}
for(++i; i<=; ++i)
if(c[i]) printf(" %d", i);
printf("\n");
}
}
}
return ;
}

2014 网选 广州赛区 hdu 5023 A Corrupt Mayor's Performance Art的更多相关文章

  1. hdu 5023 A Corrupt Mayor's Performance Art 线段树

    A Corrupt Mayor's Performance Art Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 100000/100 ...

  2. 2014 网选 广州赛区 hdu 5025 Saving Tang Monk(bfs+四维数组记录状态)

    /* 这是我做过的一道新类型的搜索题!从来没想过用四维数组记录状态! 以前做过的都是用二维的!自己的四维还是太狭隘了..... 题意:悟空救师傅 ! 在救师父之前要先把所有的钥匙找到! 每种钥匙有 k ...

  3. ACM学习历程—HDU 5023 A Corrupt Mayor's Performance Art(广州赛区网赛)(线段树)

    Problem Description Corrupt governors always find ways to get dirty money. Paint something, then sel ...

  4. HDU 5023 A Corrupt Mayor's Performance Art 线段树区间更新+状态压缩

    Link:  http://acm.hdu.edu.cn/showproblem.php?pid=5023 #include <cstdio> #include <cstring&g ...

  5. HDU 5023 A Corrupt Mayor's Performance Art(线段树区间更新)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5023 解题报告:一面墙长度为n,有N个单元,每个单元编号从1到n,墙的初始的颜色是2,一共有30种颜色 ...

  6. HDU 5023 A Corrupt Mayor's Performance Art (据说是线段树)

    题意:给定一个1-n的墙,然后有两种操作,一种是P l ,r, a 把l-r的墙都染成a这种颜色,另一种是 Q l, r 表示,输出 l-r 区间内的颜色. 析:应该是一个线段树+状态压缩,但是我用s ...

  7. hdu - 5023 - A Corrupt Mayor's Performance Art(线段树)

    题目原文废话太多太多太多,我就不copyandpaste到这里啦..发个链接吧题目 题目意思就是:P  l  r  c  将区间 [l ,r]上的颜色变成c    Q  l r 就是打印出区间[l,r ...

  8. 2014 网选 上海赛区 hdu 5047 Sawtooth

    题意:求n个'M'型的折线将一个平面分成的最多的面数! 思路:我们都知道n条直线将一个平面分成的最多平面数是 An = An-1 + n+1 也就是f(n) = (n*n + n +2)/2 对于一个 ...

  9. 2014 网选 5024 Wang Xifeng's Little Plot

    题意:从任意一个任意一个可走的点开始找一个最长的路,这条路如果有转弯的话, 那么必须是 90度,或者没有转弯! 思路: 首先用dfs将所有可走点开始的 8 个方向上的线段的最长长度求出来 ! step ...

随机推荐

  1. JDK版本不兼容问题之:一台机器安装多个版本的JDK

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://guojie.blog.51cto.com/59049/45964 我的机器上最开 ...

  2. 学习Git

    参考廖雪峰老师的个人网站:http://www.liaoxuefeng.com 版本库初始化 通过git init命令将这个命令变为git可以管理的仓库 添加文件 用命令git add file告诉G ...

  3. 一个映射到mac风格按键的AHK脚本(替换虚拟机键盘映射)

    Mac键位映射(部分) win+q 退出程序 win+w 关闭当前页面 win+h 隐藏当前窗口 win+shift+h 隐藏其他窗口 win+s 保存 win+o 打开 win+z 撤销 win+s ...

  4. INNO setup安装卸载钱判断进程中是否在运行总结

    1.安装前判断进程中是否有程序在运行. [files] ; 安装前判断进程,dll文件放在inno的安装目录中Source: compiler:psvince.dll; Flags: dontcopy ...

  5. mac工具收藏

    1.office字体兼容 http://mac.pcbeta.com/thread-32703-1-1.html

  6. Redis监控技巧(转)

    来自:http://blog.nosqlfan.com/html/4166.html Redis 监控最直接的方法当然就是使用系统提供的 info 命令来做了,你只需要执行下面一条命令,就能获得 Re ...

  7. netsh-winsock-reset;ping的通公网IP和DNS地址和内网网关,就是不能解析域名;

    winXP cmd-------------> netsh winsock reset ============= 相关知识: netsh winsock reset命令含义是重置 Winsoc ...

  8. c++标准库

    Technical Report 1不是正式的库只是一个草案,作为C++ 2003标准的附加库被大多数编译器厂商所支持,它是个过渡性质的库,其实现将会作为C++11标准的一部分.很多编译器对C++11 ...

  9. IP和端口的意义

    百科说明 在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型.物理端口指的是物理存在的端口,如ADSL Modem.集线器.交换机.路由器上用 于连接其他网络设备的接口,如RJ-45端口.S ...

  10. iis7下iis安全狗不能用怎么办(安装iis6兼容性)

    is7下iis安全狗不能用怎么办 | 浏览:126 | 更新:2015-05-14 17:11 1 2 3 4 5 6 分步阅读 windows系统iis安全狗是常用的一款软件,针对网站使用很方便.在 ...