POJ2528 Mayor's posters

考查:离散化 线段树

提交情况:1次RE 1次AC 250MS

第一道线段树和离散化的题目,收获不少,但也还有很多问题仍然不是很明白。对于离散化在这道题目中的作用,自己的理解是减少建立线段树时的区间大小,因为建立线段树时需要的空间是和其区间大小有关系的,《算法艺术与信息学竞赛》中说其节点数是区间长度的两倍。而如果对[1,10000000]建立树的话,很明显不可以,但又因为区间的数量N不超过10000,所以可以把用到的数(包括每个区间的左端点和右端点)都拿出来进行排序,然后统计用到的总的数字的个数(不包括重复的数字),如果设总的数字个数为n的话,则为[1,n]建立线段树就可以了。这里有一个很形象的对离散化的说明:http://www.cppblog.com/MiYu/archive/2010/10/15/129997.aspx,这里也有对离散化很好的解释:http://www.matrix67.com/blog/archives/108。代码中也对觉得比较关键的部分做了注释,不过对一些线段树的问题还是不清楚,在以后的线段树中再慢慢琢磨了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值