poj 2528 Mayor's posters
这个题意是市长竞选,然后每一个人都能够贴广告牌。能够覆盖别人的看最后剩几个广告牌
这题目想了两个多小时,最后忍不住看了一下题解。
发现仅仅是简单地hash 和线段树成段更新
由于有10000个人竞选。所以最多是10000个区间。20000个点,线段树就不会爆内存了。
详细操作有两个:
(1)哈希之后把每一个区间端点当做底层节点。而且仅仅要是把这个节点染色之后就是把这两个节点之中的全染色了
(2)简单地线段树更新
详情请见代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define maxx 20010
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
int sum[maxx<<2];//建树
int num[maxx<<1];
int cnt;
int hash[maxx<<1];
int a[maxx],b[maxx];
void pushup(int rt)//更新节点。把此节点的颜色传递下去,然后此节点就能够初始化掉,表示此节点中不止有一张海报
{
if(sum[rt]!=-1){
sum[rt<<1]=sum[rt<<1|1]=sum[rt];
sum[rt]=-1;
}
}
void update(int L,int R ,int c,int l,int r,int rt){
if(L<=l&&R>=r){
sum[rt]=c;
return ;
}
pushup(rt);
int m=(l+r)>>1;
if(L<=m) update(L,R,c,lson);
if(R>m) update(L,R,c,rson);
}
void query(int l,int r,int rt){
if(sum[rt]!=-1)//表示不仅仅有一张海报
{
if(!hash[sum[rt]]) cnt++;
hash[sum[rt]]=1;
return ;
}
if(l==r) return ;
int m=(l+r)>>1;
query(lson);
query(rson);
}
int cheak(int aa,int nn,int num[])//推断这个点在那边
{
int l=0,r=nn-1;
while(l<=r){
int m=(l+r)>>1;
if(num[m]==aa) return m;
if(num[m]<aa) l=m+1;
else r=m;
}
return -1;
}
int main(){
int T,n;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
int m=0;
for(int i=0;i<n;i++){
scanf("%d%d",&a[i],&b[i]);
num[m++]=a[i];
num[m++]=b[i];
}
sort(num,num+m);
// for(int i=0;i<m;i++)
// printf("%d %d\n",i,num[i]);
int h=1;
for(int i=1;i<m;i++){
if(num[i]!=num[i-1])
num[h++]=num[i];
}
//puts("--------------");
// for(int i=0;i<h;i++)
// printf("%d %d\n",i,num[i]);
memset(sum,-1,sizeof(sum));
memset(hash,0,sizeof(hash));
for(int i=0;i<n;i++){
int l=cheak(a[i],h,num);
int r=cheak(b[i],h,num);
update(l,r,i,0,h,1);
}
cnt=0;
query(0,h,1);
printf("%d\n",cnt);
}
}
poj 2528 Mayor's posters的更多相关文章
- poj 2528 Mayor's posters 【线段树 + 离散化】
Mayor's posters Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 50643 Accepted: 14675 ...
- POJ 2528 Mayor's posters 离散化+线段树
题目大意:给出一些海报和贴在墙上的区间.问这些海报依照顺序贴完之后,最后能后看到多少种海报. 思路:区间的范围太大,然而最多仅仅会有10000张海报,所以要离散化. 之后用线段树随便搞搞就能过. 关键 ...
- 线段树区间更新,区间统计+离散化 POJ 2528 Mayor's posters
题意:有一个非常长的板子(10000000长),在上面贴n(n<=10000)张海报.问最后从外面能看到几张不同的海报. 由于板子有10000000长,直接建树肯定会爆,所以须要离散化处理,对于 ...
- POJ 2528 Mayor's posters 离散化和线段树题解
本题就是要往墙上贴海报,问最后有多少可见的海报. 事实上本题的难点并非线段树,而是离散化. 由于数据非常大,直接按原始数据计算那么就会爆内存和时间的. 故此须要把数据离散化. 比方有海报1 6 7 ...
- poj 2528 Mayor's posters(线段树+离散化)
/* poj 2528 Mayor's posters 线段树 + 离散化 离散化的理解: 给你一系列的正整数, 例如 1, 4 , 100, 1000000000, 如果利用线段树求解的话,很明显 ...
- poj 2528 Mayor's posters 线段树+离散化技巧
poj 2528 Mayor's posters 题目链接: http://poj.org/problem?id=2528 思路: 线段树+离散化技巧(这里的离散化需要注意一下啊,题目数据弱看不出来) ...
- POJ - 2528 Mayor's posters(dfs+分治)
POJ - 2528 Mayor's posters 思路:分治思想. 代码: #include<iostream> #include<cstdio> #include< ...
- POJ.2528 Mayor's posters (线段树 区间更新 区间查询 离散化)
POJ.2528 Mayor's posters (线段树 区间更新 区间查询 离散化) 题意分析 贴海报,新的海报能覆盖在旧的海报上面,最后贴完了,求问能看见几张海报. 最多有10000张海报,海报 ...
- POJ 2528 Mayor's posters
Mayor's posters Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Sub ...
随机推荐
- HBase编程 API入门系列之HTable pool(6)
HTable是一个比较重的对此,比如加载配置文件,连接ZK,查询meta表等等,高并发的时候影响系统的性能,因此引入了“池”的概念. 引入“HBase里的连接池”的目的是: 为了更高的,提高程序的并发 ...
- 利用JavaScript制作简易日历
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <met ...
- 【Oracle】RAC控制文件多路复用
1.—关闭数据库,各个节点都要关闭: [oracle@rac1 ~]$ srvctl stop database -d racdb -o immediate 2.—启动任一节点到nomount状态: ...
- SVN客户端安装 Linux
1.下载 [maintain@HM16-213 software]$ wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1 ...
- 解决strip: Unable to recognise the format of the input file问题
前言 在编译xilinx的uboot的时候出现了一个问题,始终报错:“strip: Unable to recognise the format of the input file `gen_et ...
- RabbitMQ学习之集群消息可靠性测试
之前介绍过关于消息发送和接收的可靠性:RabbitMQ学习之消息可靠性及特性 下面主要介绍一下集群环境下,rabbitmq实例宕机的情况下,消息的可靠性.验证rabbitmq版本[3.4.1]. 集群 ...
- 数据库_数据分片与mycat服务
1.数据分片; 2.部署mycat服务;3.基于mycat服务创建新库新表. 一,数据分片 1.数据分片,也叫分库分表,即将存放在一台数据库服务器中的数据,按照特定方式进行拆分,分散存放到其它多台服务 ...
- 一系列令人敬畏的.NET核心库,工具,框架和软件
内容 一般 框架,库和工具 API 应用框架 应用模板 身份验证和授权 Blockchain 博特 构建自动化 捆绑和缩小 高速缓存 CMS 代码分析和指标 压缩 编译器,管道工和语言 加密 数据库 ...
- IT级别
IT领袖:年入过亿(例如任正非.马化腾.李彦宏.丁磊.马云等,包括期权股票以及投资理财等收入.) IT大哥:年入千万(级别次于以上几位大佬的公司老板,不缺钱,普遍对上一条里的人物羡慕嫉妒恨.) IT精 ...
- 【转】Oracle基础结构认知—oracle物理结构 礼记八目 2017-12-13 20:31:06
原文地址:https://www.toutiao.com/i6499008214980362765/ oracle数据库启动:oracle服务启动,通过参数文件查找控制文件,启动控制文件,则控制文件调 ...