摘要: 题意: 给出一些人要求插入队列的位置和他们的身高 输出最后队列的每个人身高输入: 给出n 表示有n个人 给出每个人要插进的队列的位置和该人的身高思路: sum 数组保存该区间的空位 a 数组保存该位置的人的身高 pushup函数用来自下向上更新区间空位 modify函数用来根据sum值找出空位并插入..Tips: 比较的时候..如果比左节点的sum值大就往右子树插位置.. 所以比较函数写的应该是..if(p <= sum[rt<<1]) 往右子树插的时候传入的参数也应该相应减少..即p - sum[rt<<1]Code:View Code 1 //模拟链表 数据量 阅读全文
posted @ 2012-10-11 20:49 Griselda. 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个board的面积是h*w..在上面贴一些announcement.. 给出告示的宽度ww..可知告示的面积为1*ww.. 问告示是否可以贴上去..可以就输出在board的第几行..不可以就输出-1思路: 以min(h, n)为长度建一棵树.. 然后每一个的叶子的长度为w.. 找出所有叶子中最大的那个..把announcement贴上去.. 用ma数组存当前区间最大值..Tips: 查询和更新可以一起写..但是我分开写了.. 然后还有一个要注意的是..树的最大宽度为min(h, n) 比较的时候是和左右节点大小比.. ※ 所以modify的时候判断条件也应该是i... 阅读全文
posted @ 2012-10-11 13:03 Griselda. 阅读(547) 评论(0) 推荐(0) 编辑