摘要: pku 3667 Hotel题意:去掉题目背景,就是给你一个[1,n]的区间,初始时,整个区间为空,在区间进行俩个操作:1) 输入 1 D :在区间上从左到右找出第一个连续的长度为D 的空间,并将该区间填满,输出区间的端点,若不存在,输出02) 输入 2a b: 将区间[a,a+b-1] 填满分析:很明显是用线段树进行维护,关键是每一个节点需要保存该区间的些什么值?这里我们可以想到,因为要找出的是一个连续的空区间的左端点,这个区间可能分布在左儿子上,右儿子上,或者可能在俩边都有,这样给查询带来了极大的不方便。不过,我们可以充分利用线段树的结构特点,通过保存与区间左右端点有关的信息,就可以遍历整 阅读全文
posted @ 2011-09-23 09:56 枕边梦 阅读(352) 评论(0) 推荐(0) 编辑