POJ2528 Mayor's posters

来源:互联网 发布:手机淘宝客户端删评价 编辑:程序博客网 时间:2024/05/22 17:14

考查:离散化 线段树

提交情况: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。代码中也对觉得比较关键的部分做了注释,不过对一些线段树的问题还是不清楚,在以后的线段树中再慢慢琢磨了。

 

原创粉丝点击