辣鸡会考考完啦哈哈哈哈

题意:一块板分成$L$块,每次给一段连续的块染色或者询问一段有几种颜色,颜色的范围$\leq 30$


我记得我好像做过一个类似的二维染色的问题…不过那个用树状数组直接过掉了…

这题颜色范围这么小的范围直接想到线段树了吧,直接把一个区间的颜色二进制按位压缩成一个状态,维护区间或

题面还特地说了可能$a>b$…然而我没看到

#include<cstdio>
const int N=100005;
inline int read()
{
int s=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){s=s*10+c-'0';c=getchar();}
return s*f;
}
int n,o,t;
int tr[N<<2],tag[N<<2];
char s[5];
inline void swap(int &a,int &b){int t=a;a=b;b=t;}
#define lson (node<<1)
#define rson (node<<1|1)
inline void push_up(int node)
{
tr[node]=tr[lson]|tr[rson];
}
inline void push_down(int node,int l,int r)
{
if(tag[node]==-1)return;
tag[lson]=tag[rson]=tag[node];
tr[lson]=tr[rson]=(1<<(tag[node]-1));
tag[node]=-1;
}
inline void build(int node,int l,int r)
{
tag[node]=-1;tr[node]=1;
if(l==r)return;
int mid=(l+r)>>1;
build(lson,l,mid);build(rson,mid+1,r);
}
inline void modify(int node,int l,int r,int ql,int qr,int v)
{
if(ql<=l&&r<=qr)
{
tag[node]=v;
tr[node]=(1<<(v-1));
return;
}push_down(node,l,r);
int mid=(l+r)>>1;
if(mid>=ql)modify(lson,l,mid,ql,qr,v);
if(mid+1<=qr)modify(rson,mid+1,r,ql,qr,v);
push_up(node);
}
inline int query(int node,int l,int r,int ql,int qr)
{
if(ql<=l&&r<=qr)return tr[node];
push_down(node,l,r);int res=0,mid=(l+r)>>1;
if(mid>=ql)res|=query(lson,l,mid,ql,qr);
if(mid+1<=qr)res|=query(rson,mid+1,r,ql,qr);
return res;
}
int main()
{
//freopen("input.in","r",stdin);
n=read();t=read();o=read();
build(1,1,n);
for(register int i=1;i<=o;i++)
{
scanf("%s",s+1);
if(s[1]=='C')
{
int a,b,c;a=read();b=read();c=read();
if(a>b)swap(a,b);modify(1,1,n,a,b,c);
}else{
int a,b;a=read();b=read();
if(a>b)swap(a,b);
int sum=query(1,1,n,a,b),res=0;
for(register int k=0;k<=32;k++)
{
if(sum&(1ll<<k))res++;
}printf("%d\n",res);
}
}
return 0;
}

[日常摸鱼][poj2777]Count Color-线段树的更多相关文章

  1. [poj2777] Count Color (线段树 + 位运算) (水题)

    发现自己越来越傻逼了.一道傻逼题搞了一晚上一直超时,凭啥子就我不能过??? 然后发现cin没关stdio同步... Description Chosen Problem Solving and Pro ...

  2. POJ2777 Count Color 线段树区间更新

    题目描写叙述: 长度为L个单位的画板,有T种不同的颜料.现要求按序做O个操作,操作分两种: 1."C A B C",即将A到B之间的区域涂上颜色C 2."P A B&qu ...

  3. Count Color(线段树+位运算 POJ2777)

    Count Color Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 39917 Accepted: 12037 Descrip ...

  4. POJ 2777 Count Color(线段树之成段更新)

    Count Color Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 33311 Accepted: 10058 Descrip ...

  5. poj 2777 Count Color(线段树)

    题目地址:http://poj.org/problem?id=2777 Count Color Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  6. poj 2777 Count Color(线段树区区+染色问题)

    题目链接:  poj 2777 Count Color 题目大意:  给出一块长度为n的板,区间范围[1,n],和m种染料 k次操作,C  a  b  c 把区间[a,b]涂为c色,P  a  b 查 ...

  7. poj 2777 Count Color(线段树、状态压缩、位运算)

    Count Color Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 38921   Accepted: 11696 Des ...

  8. poj 2777 Count Color - 线段树 - 位运算优化

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 42472   Accepted: 12850 Description Cho ...

  9. POJ P2777 Count Color——线段树状态压缩

    Description Chosen Problem Solving and Program design as an optional course, you are required to sol ...

随机推荐

  1. Perfview 分析进程性能

    PerfView 概述: PerfView是一个可以帮助你分析CPU和内存问题的工具软件.它非常轻量级也不会入侵诊断的程序,在诊断过程中对诊断的程序影响甚微. Visual Studio自带的性能分析 ...

  2. 【建议收藏】阿里P7总结的Spring注解笔记,把组件注册讲的明明白白

    环境搭建 注解的方式是通过配置类的方式来注入组件,注解注入要比XML注入的方式简单,注解注入也需要在前者的基础上,添加一个spring-context的包,也是实际开发中常用的方式. 准备所需Jar包 ...

  3. 13.java设计模式之模板模式

    基本需求: 制作豆浆的流程 选材--->添加配料--->浸泡--->放到豆浆机打碎 通过添加不同的配料,可以制作出不同口味的豆浆 选材.浸泡和放到豆浆机打碎这几个步骤对于制作每种口味 ...

  4. 神秘、常用、多变的Binder

    今天说说神秘又常用又多变的Binder~ Binder是什么 Binder通信过程和原理 在Android中的应用 Binder优势 Binder是什么 先借用神书<Android开发艺术探索& ...

  5. ABBYY FineReader 14新建任务窗口给我们哪些帮助?

    当您启动ABBYY FineReader时, 新任务 将打开一个窗口,在其中您可以轻松打开.扫描.创建或对比文档. 如果您没有看到此 内置任务 窗口(比如,如果您关闭了该窗口,或者您通过在 Windo ...

  6. 下载器Folx的创建种子功能怎么使用

    当我们想要分享一些自己制作的资源时,可以使用Folx的创建种子功能,在网络上分享种子,供他人下载,这个过程也被称为做种.作为种子创建者,需要在一定时间内保持做种进程,以便维持种子的生命期限,方便他人下 ...

  7. Anno微服务引擎与传统应用相融合

    1.Anno是什么? Anno是一个微服务引擎.在此之前我们通过 Viper项目对Anno有一个基本的认识,并且Viper也受到的很多朋友的喜欢,截止发稿前Viper在GitHub收获了300多个星. ...

  8. CSP2020 游记

    Day -28 后天就初赛了,考了一套模拟题,自闭,心态爆炸,感觉退役不远了 Day -26(初赛) 香农是谁??? 手写随机nth_element与O(n)的哈希表??? 阅读程序T2时间复杂度分析 ...

  9. iOS UITextFeild获取高亮部分的长度

    获取原因: 中英文混输时,会遇到长度统计不准的问题. 获取方法: NSString *toBeString = textField.text; NSString *lang = [[UITextInp ...

  10. mybatis 动态SQL 源码解析

    摘要 mybatis是个人最新喜欢的半自动ORM框架,它实现了SQL和业务逻辑的完美分割,今天我们来讨论一个问题,mybatis 是如何动态生成SQL SqlSessionManager sqlSes ...