2014 网选 广州赛区 hdu 5023 A Corrupt Mayor's Performance Art
#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的更多相关文章
- 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 ...
- 2014 网选 广州赛区 hdu 5025 Saving Tang Monk(bfs+四维数组记录状态)
/* 这是我做过的一道新类型的搜索题!从来没想过用四维数组记录状态! 以前做过的都是用二维的!自己的四维还是太狭隘了..... 题意:悟空救师傅 ! 在救师父之前要先把所有的钥匙找到! 每种钥匙有 k ...
- ACM学习历程—HDU 5023 A Corrupt Mayor's Performance Art(广州赛区网赛)(线段树)
Problem Description Corrupt governors always find ways to get dirty money. Paint something, then sel ...
- HDU 5023 A Corrupt Mayor's Performance Art 线段树区间更新+状态压缩
Link: http://acm.hdu.edu.cn/showproblem.php?pid=5023 #include <cstdio> #include <cstring&g ...
- HDU 5023 A Corrupt Mayor's Performance Art(线段树区间更新)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5023 解题报告:一面墙长度为n,有N个单元,每个单元编号从1到n,墙的初始的颜色是2,一共有30种颜色 ...
- HDU 5023 A Corrupt Mayor's Performance Art (据说是线段树)
题意:给定一个1-n的墙,然后有两种操作,一种是P l ,r, a 把l-r的墙都染成a这种颜色,另一种是 Q l, r 表示,输出 l-r 区间内的颜色. 析:应该是一个线段树+状态压缩,但是我用s ...
- hdu - 5023 - A Corrupt Mayor's Performance Art(线段树)
题目原文废话太多太多太多,我就不copyandpaste到这里啦..发个链接吧题目 题目意思就是:P l r c 将区间 [l ,r]上的颜色变成c Q l r 就是打印出区间[l,r ...
- 2014 网选 上海赛区 hdu 5047 Sawtooth
题意:求n个'M'型的折线将一个平面分成的最多的面数! 思路:我们都知道n条直线将一个平面分成的最多平面数是 An = An-1 + n+1 也就是f(n) = (n*n + n +2)/2 对于一个 ...
- 2014 网选 5024 Wang Xifeng's Little Plot
题意:从任意一个任意一个可走的点开始找一个最长的路,这条路如果有转弯的话, 那么必须是 90度,或者没有转弯! 思路: 首先用dfs将所有可走点开始的 8 个方向上的线段的最长长度求出来 ! step ...
随机推荐
- reader
http://git.oschina.net/jayqqaa12/abase-reader https://github.com/JustWayward/BookReader https://gith ...
- spring官方案例程序
https://github.com/spring-projects/spring-data-book https://github.com/spring-projects 包含其他相关的应用程序
- ssh sftp scp命令
scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:r ...
- Autosizer应用程序窗口控制工具
Autosizer是一个系统辅助软件,窗口控制工具,它能指定程序窗口的大小位置置顶等,可以将窗口最大化,最小化,比如在需要截图的时候可以讲窗口设定大小640*480,然后用FSCapture捕捉活动窗 ...
- 配置CENTOS YUM更新源
众所周知,Centos 有个很方便的软件安装工具 yum,但是默认安装完centos,系统里使用的是国外的centos更新源,这就造成了我们使用默认更新源安装或者更新软件时速度很慢的问题. 为了使用 ...
- 如何在maven项目的pom.xml文件中添加jar包
在使用maven进行项目开发时,我们需要在pom.xml文件中添加自己所需要的jar包.这就要求我们获取jar包的groupId和artifactId. 我们可以在一些maven仓库上搜索我们所需要的 ...
- 使用cow将socks5代理转为http代理(Windows版)
自己租vps架设shadowsocks服务器,再配合chrome的SwitchyOmega插件科学上网一直很稳定,但是windows很多软件都不支持socks5,经常也会需要配置http代理做更新上传 ...
- WPF笔记一
笔记内容: BUG.WPF运行窗体时调用Hide()方法,然后再Show()异常的解决方案 WPF 窗体设置为无边框 选择本地文件 选择文件夹 WPF实现右下角弹出消息窗口 WPF 显示 HTTP 网 ...
- web端视频直播网站的弊端和优势
在YY上市前后,国内涌出一批类YY视频直播或9158的秀场类网站. 比如六间房,酷六等等 这种web端视频服务基本依靠web本身的特性,用flash直播,靠CDN提供服务. 但是这样的架构有2个问题 ...
- Eclipse shortcuts
Editor Shortcut Description Alt + / Content assist. A great help for our coding. Ctrl + Shift + F Fo ...