POJ2777(线段树裸题)
题目:http://poj.org/problem?id=2777
别忘了各地的return;
有可能输入的L<R,手动swap;
似乎是多组输入?
pushup和pushdown的位置。
(原来pushup只有一行)
要开四倍数组。是这种写法的原因吧。
#include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=400005; int n,m,q,L,R,co; char ch; long long col[N],lazy[N]; void pushdown(int cnt) {if(lazy[cnt]){col[cnt*2]=lazy[cnt];col[cnt*2+1]=lazy[cnt];lazy[cnt*2]=lazy[cnt];lazy[cnt*2+1]=lazy[cnt];lazy[cnt]=0;} } void pushup(int cnt) {col[cnt]=(col[cnt*2]|col[cnt*2+1]); } void add(int l,int r,int cnt) {if(l>=L&&r<=R){col[cnt]=co;lazy[cnt]=co;return;}pushdown(cnt);int mid=(l+r)/2;if(mid>=L)add(l,mid,cnt*2);if(mid<R)add(mid+1,r,cnt*2+1);pushup(cnt); } long long query(int l,int r,int cnt) {if(l>=L&&r<=R){return col[cnt];}long long ans=0;pushdown(cnt);int mid=(l+r)/2;if(mid>=L)ans|=query(l,mid,cnt*2);if(mid<R)ans|=query(mid+1,r,cnt*2+1);return ans; } void build(int l,int r,int cnt) {col[cnt]=1;if(l==r)return;int mid=(l+r)/2;build(l,mid,cnt*2);build(mid+1,r,cnt*2+1); } int main() {while(scanf("%d%d%d",&n,&m,&q)!=EOF){build(1,n,1);memset(lazy,0,sizeof lazy);for(int i=1;i<=q;i++){scanf(" %c%d%d",&ch,&L,&R);if(L>R)swap(L,R);// if(ch=='C'){scanf("%d",&co);co=(1<<(co-1));add(1,n,1);}if(ch=='P'){int ret=0;long long ans=query(1,n,1);while(ans){ret+=(ans&1);ans>>=1;}printf("%d\n",ret);}}}return 0; }
转载于:https://www.cnblogs.com/Narh/p/8721372.html
POJ2777(线段树裸题)相关推荐
- UVA 12086 Potentiometers(线段树裸题)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- Count Color poj2777 线段树
Count Color poj2777 线段树 题意 有一个长木板,现在往上面在一定区间内刷颜色,后来刷的颜色会掩盖掉前面刷的颜色,问每次一定区间内可以看到多少种颜色. 解题思路 这里使用线段树,因为 ...
- 线段树模板题3:区间染色问题
1.3线段树模板题3:区间染色问题 在DotA游戏中,帕吉的肉钩实际上是大多数英雄中最恐怖的东西.挂钩由长度相同的几个连续的金属棍组成. 现在,帕吉(Pudge)希望对挂接进行一些操作. 让我们将钩子 ...
- J.哭泣的阿木木(线段树模板题)
哭泣的阿木木 Description 没啥用的背景故事: 在远古的恕瑞玛,有一个孤独而又忧郁的灵魂,阿木木.他在世间游荡,只为找到一个朋友.他遭受了一种远古的巫术诅咒,注定忍受永世的孤单,因为被他触碰 ...
- 小清的线段树25题日志01 线段树下你和我 欢乐多又多
前言 难度大致会按排序来 就不写总结啦 嘻嘻 适合刚学线段树的人(和我一样 练手 /*if you can't see the repayWhy not just work step by stepr ...
- 玲珑杯 1164 - 战舰萝莉 线段树水题
点击打开链接 DESCRIPTION 在大战之后,法力浮·鳝AK迅速驾船驶向北海.当然他知道水之灵不可能那么容易得到,正如爱迪生曾说过:"要把BOSS打倒就要准备足够的等级."所以 ...
- hdu1156(简单线段树 模板题)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- poj2777线段树
题目大意:有一长为L的木板,将其分为等长的L段,从左到右编号为1~L.现将L段木板着色 1. 输入"C A B C" 是将A到B这一段着成C这种颜色. 2. 输入"P A ...
- Bzoj 4408: [Fjoi 2016]神秘数 可持久化线段树,神题
4408: [Fjoi 2016]神秘数 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 177 Solved: 128 [Submit][Stat ...
最新文章
- yield学习续:yield return迭代块在Unity3D中的应用——协程
- 自动驾驶安全框架开发进展综述
- assert() (C++) 非常简单!
- Xcode7在运行包含HTTP协议的程序时报错解决方法 App Transport Security has blocked a cleartext HTTP (http)...
- 中小型局域网构建实践 PDF高清版
- DataTables怎么给某一列加上click事件
- 跨性别,你所不知道的事
- calender获取日期前几月_java获取当前时间和前一天日期(实现代码)
- dj鲜生-05-配置-静态目录-模板目录-后台语言时区
- 利用 Caddy 轻松实现反向代理/镜像(支持自签SSL证书)
- 微软认知服务开发实践(1) - 牛津计划简介
- 倪文迪陪你学蓝桥杯2021寒假每日一题:1.11日(2017省赛A第9题)
- colorpix取色小工具_Python版的取色器
- 日期对象Date的计算
- Hello Guice
- win7打开win10共享计算机要凭据,win10打开共享文件夹后要求凭证怎么办
- html5 canvas画彩虹,HTML5 Canvas彩虹连接点动画
- 计算机中用函数排序,编写一个sort()函数,实现选择法排序,在主函数中输入10个整数,主函数调用sort()函数实现排序后将数据输出。...
- 2022年最新版初级商业数字营销师钻展题库
- 新型高科技口罩即将成为一种身份象征
热门文章
- javascript读取txt_JavaScript编程语言学习笔记——编程
- python脚本语言采用声音作为手段_python 利用pyttsx3文字转语音过程详解
- php dirtoarray,PHP Ds\Stack toArray()用法及代码示例
- 电脑常见故障排除_中央空调常见故障解析
- [深度学习] 自然语言处理---Transformer 位置编码介绍
- 使用C#编程解决数独求解(从图片识别到数独求解)
- ubuntu install scite and 中文乱码解决
- 神经网络实现xor_在神经网络中实现逻辑门和XOR解决方案
- 软件架构:模块、组件、微服务总结
- 为中国游牧蒙古人造像