题目连接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610

题意:在0-8000长的线段里面,按先后次序依次覆盖颜色,求最后每种颜色有多少条

线段树功能:区间覆盖。

分析:区间覆盖后将叶子节点信息取出来O(N)扫一遍即可。

注意:线段长度固定为8000,并不是n,否则无限“Segmentation Fault”。

#pragma comment(linker,"/STACK:102400000,102400000")
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cstdlib>
#include <stack>
#include <vector>
#include <set>
#include <map>
#define LL long long
#define mod 1000000007
#define inf 0x3f3f3f3f
#define N 10010
#define FILL(a,b) (memset(a,b,sizeof(a)))
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
using namespace std;
int col[N<<];
int cnt[N],num[N];
void Pushdown(int rt)
{
if(col[rt]!=-)
{
col[rt<<]=col[rt<<|]=col[rt];
col[rt]=-;
}
}
void build(int l,int r,int rt)
{
col[rt]=-;
if(l==r)
{
return;
}
int m=(l+r)>>;
build(lson);
build(rson);
}
void update(int L,int R,int c,int l,int r,int rt)
{
if(L<=l&&r<=R)
{
col[rt]=c;
return;
}
Pushdown(rt);
int m=(l+r)>>;
if(L<=m)update(L,R,c,lson);
if(m<R)update(L,R,c,rson);
}
void query(int l,int r,int rt)
{
if(l==r)
{
cnt[l]=col[rt];
return;
}
Pushdown(rt);
int m=(l+r)>>;
query(lson);
query(rson);
}
int main()
{
int n,m;;
int a,b,c;
while(scanf("%d",&n)>)
{
build(,,);
m=n;
while(m--)
{
scanf("%d%d%d",&a,&b,&c);
if(a==b)continue;
update(a+,b,c,,,);
}
query(,,);
FILL(num,);
for(int i=;i<=;i++)
{
while(cnt[i]==cnt[i+]&&i<)i++;
if(cnt[i]!=-)
num[cnt[i]]++;
}
for(int i=;i<=;i++)
{
if(num[i])printf("%d %d\n",i,num[i]);
}
puts("");
}
}

zoj1610(线段树)的更多相关文章

  1. zoj-1610线段树刷题

    title: zoj-1610线段树刷题 date: 2018-10-16 16:49:47 tags: acm 刷题 categories: ACM-线段树 概述 这道题是一道简单的线段树区间染色问 ...

  2. ZOJ-1610 线段树+两种查询方法(弥补我线段树区间填充的短板)

    ZOJ-1610 线段树+两种查询方法(弥补我线段树区间填充的短板) 题意 题意:给一个n,代表n次操作,接下来每次操作表示把[l,r]区间的线段涂成k的颜色其中,l,r,k的范围都是0到8000 这 ...

  3. zoj1610线段树区间覆盖

    链接https://vjudge.net/contest/66989#problem/F 坑爹的线段树,一直用区间更新做,做了半天一点眉目都没有,只好搜题解,感觉好堕落,经常不会做就搜题解,以后一定要 ...

  4. zoj1610 线段树

    //Accepted 804 KB 40 ms //整个题,都是坑 //1.The first line of each data set contains exactly one integer n ...

  5. [ZOJ1610]Count the Colors(线段树,区间染色,单点查询)

    题目链接:http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=1610 题意:给一个长8000的绳子,向上染色.一共有n段被染色,问染 ...

  6. kuangbin专题七 ZOJ1610 Count the Colors (灵活线段树)

    Painting some colored segments on a line, some previously painted segments may be covered by some th ...

  7. 线段树专题—ZOJ1610 Count the Colors

    题意:给一个n,代表n次操作,接下来每次操作表示把[l.r]区间的线段涂成k的颜色当中,l,r,k的范围都是0到8000 分析:事实上就是拿线段树维护一段区间的颜色,整体用到的是线段树的区间更新把,可 ...

  8. 【ACM/ICPC2013】线段树题目集合(一)

    前言:前一段时间在网上找了一个线段树题目列表,我顺着做了一些,今天我把做过的整理一下.感觉自己对线段树了解的还不是很深,自己的算法能力还要加强.光练代码能力还是不够的,要多思考.向队友学习,向大牛学习 ...

  9. bzoj3932--可持久化线段树

    题目大意: 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第 ...

随机推荐

  1. canvas 多种形状绘图方法

    function canvasUploadImg(image,imageName,imgType,callbackfn){ var img_width = image.width; var img_h ...

  2. python 获取当前日期 星期

    from datetime import datetime d =datetime.today()     #获取当前日期时间 d.isoweekday()           #获取时间周几

  3. MySql自己定义排序

    查询语句: select id,name,stauts from special where id in (50,51,52,53,54,55) order by FIELD( id ,51,50, ...

  4. 【IOS实例小计】UIImageView

    预备知识: UIImage 是一个专门存储图片数据的对象,默认兼容的图片格式是 PNG,可以通过文件.Quartz image对象或 image Data数据得到一个图片对象. UIImage相关功能 ...

  5. Redis:安装、配置、操作和简单代码实例(C语言Client端)

    Redis:安装.配置.操作和简单代码实例(C语言Client端) - hj19870806的专栏 - 博客频道 - CSDN.NET Redis:安装.配置.操作和简单代码实例(C语言Client端 ...

  6. Linux下经常使用的shell命令记录

    硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /proc/cpuinfo #查看CPU信息具体信息,如每一个CPU的型号,主频等 内存相关 free -m #概要查看内存情况 ...

  7. 在屏幕上建立ALV

    在屏幕上创建两个文本元素空件.一个推出按钮控件.一个定制控制按钮 代码所示: *&------------------------------------------------------- ...

  8. QT源码分析(从QApplication开始)

    QT源码分析 转载自:http://no001.blog.51cto.com/1142339/282130 今天,在给同学讲东西的时候,谈到了Qt源代码的问题,才发现自己对Qt机制的了解是在太少了,而 ...

  9. Android菜鸟的成长笔记(7)——什么是Activity

    原文:[置顶] Android菜鸟的成长笔记(7)——什么是Activity 前面我们做了一个小例子,在分析代码的时候我们提到了Activity,那么什么是Activity呢? Activity是An ...

  10. 3xian退役贴【深思。】

    这是原文: 最后一天,漫天飘起了雪花,假装欢送我离去. 这次WF之战不太顺利,早期的C题大概花了1秒钟构思,然而由于输出格式多了一个空格直到两个半小时才逃脱Wrong Answer的纠缠.还好lynn ...