博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 2528 Mayor's posters (线段树+染色)
阅读量:4652 次
发布时间:2019-06-09

本文共 970 字,大约阅读时间需要 3 分钟。

题目大意:

在一个长度为1e7单位的板子上贴海报,后贴上的会覆盖原来贴上的,问最后能看到几个海报(露出部分也可以)

思路

因为板子是1e7,但给出的海报个数为1e4,所以考虑离散化,普通的离散化是会漏掉颜色,比如 1 3 1 10 1 4 7 10,所以要在长度大于1区间之间在加一个点,记录这个区间的颜色。然后就是col本身即使树,也可以把他当lazy自身向下传递,最后查询时只需要查询有几种颜色,如果有颜色直接返回即可。

在updata时注意不要让叶子节点向下传递.....

#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))const int maxn=4e4+10;using namespace std;struct node{ int l,r;}e[maxn];int arr[maxn],col[4*maxn],vis[maxn],n;int ans=0;void init(){ mem(col,0); mem(vis,0); mem(arr,0); mem(e,0); ans=0;}void updata(int l,int r,int left,int right,int c,int now){ int mid=(l+r)/2; if(left<=l&&r<=right) { col[now]=c; return ; } if(l>right) return ; if(r
1;i--)//加点 { if(arr[i]-arr[i-1]!=1) arr[++m]=arr[i-1]+1; } sort(arr+1,arr+1+m);// for(int i=1;i<=m;i++)// {// cout<
<<" ";// }cout<

 

转载于:https://www.cnblogs.com/minun/p/10473774.html

你可能感兴趣的文章
Effective Go(官方文档)笔记
查看>>
Spring表达式语言SpEL简单介绍
查看>>
NancyFX 第八章 内容协商
查看>>
操蛋的一天
查看>>
20172324 2017-2018-2 《程序设计与数据结构》第八周学习总结
查看>>
Dao层设计
查看>>
css各种姿势的水平居中
查看>>
MYSQL 测试常用语句使用技巧
查看>>
基础细节知识
查看>>
树状数组求区间最大值
查看>>
从面试官角度来告诉大家,哪些人能面试成功
查看>>
以我的亲身经历为例,告诉大家写简历和面试的技巧(面向高级开发和架构师)...
查看>>
一个简单的PHP网站结构
查看>>
Redis 学习之简介及安装
查看>>
jsp简单的学习
查看>>
[LeetCode][JavaScript]Number of 1 Bits
查看>>
[LeetCode][JavaScript]Plus One
查看>>
C语言-06复杂数据类型-01数组
查看>>
同余方程 2012年NOIP全国联赛提高组
查看>>
vue 图片预览插件
查看>>