
ACMer
文章平均质量分 78
andychanry
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU1754线段树解经典的RMQ问题
这题看到后就觉得线段树是赤裸裸毫无任何技巧的,最主要是更新相当容易理解,然后考虑了下,貌似初始化要动点脑经,于是想到了DFS初始化把每段的最大值都通过数塔的求法求出来,然后更新只要这个值在线段之间的都跟着更新,最后查找,一开始用了链表来储存,虽然空间上省了很多,但是提交后发现RE栈溢出了,所以后来改成了静态的结果在RE数据越界了,然后把数组开大了2.5倍就AC了....562MS算慢的了原创 2010-08-04 09:10:00 · 489 阅读 · 0 评论 -
hdu 1237 简单计算器有感
话说在数据结构上看完之后就来敲了这题,敲完提交后wa于是找错,发现没考虑0 + 1这种数据,直接跳出了,于是改了后来还是wa,于是我又查,发现1 - 2 + 4输出的是-5违反了操作符优先级相同从左往右运算的原则,后来发现1 / 2 / 3 * 2 * 3这组也错了,于是看了书,发现是书上的优先级表错了于是改之就过了,这个代码稍作修改就能适用于带括号的运算同时给几组比较容易错的吧0 + 11.0011.001 - 2 + 43.001 * 2 + 1 + 1 * 2 * 3 / 3 - 1 + 2 / 16原创 2010-08-03 14:31:00 · 441 阅读 · 0 评论 -
HDU1698关于线段树的解题报告和代码
首先用的数据结构是线段树,这个大家可以去搜索下,本身的数据结构是很简单的,但是变化是非常广的,这就是线段树的魅力所在,这题用线段的主要思想就是把域Cover定位是否整个覆盖,比如[1,5]这个区间的覆盖标记是1说明完全覆盖,所以马上可以算出答案(5-1+1)×val,val为覆盖这个线段的钩子等级,这题主要是考更新,更新的时候要通过判断Cover来做即时更新,如果Cover是0的话那可以按照普通方法来更新,但是如果Cover是1的话那就先要把父节点的相关信息传递给左右儿子,然后改变自己相关信息才可,具体比较原创 2010-08-03 16:33:00 · 646 阅读 · 0 评论 -
HDU1823二维线段树+易错点
话说一开始做线段树看到这题想到应该就是所谓的二维线段树,于是就敲了一下,敲完3K多B之后提交TLE之后一直不知道怎么回事于是去找了相关代码来参考,发现查找,更新,建树的思想是一样,但是我SB了,竟然把左右子树的位置还记下来了,因为之前一直用的动态储存就是指针,所以数据结构中必须要有两个子树的指针,但是这次用了静态的数组来储存,所以习惯性的就把左右儿子的信息记录下来了,后来才发现根本不用的因为如果父节点是N,那左儿子的下标必然是2*N,右儿子下标也必然是2*N+1,因此把这两个变量去掉了,并且操作一律用位运算原创 2010-08-05 09:38:00 · 978 阅读 · 0 评论 -
HDU2795 Billboard线段树的基础变通
这题一直不知道为什么是线段树,因为h,w都有10^9建树明显是不可能的,后来一想他N只有20w也就是说如果每段都占一行也最多用了20w而已,于是就想到了h建树,这样每个叶子节点就表示该该行所剩余的空格,最后只需要一个插入函数,插入的时候直接输出行数,结果写好然后WA了后来经过同学的提醒,发现Cover的定义错了,于是就改了下就AC了,用了位运算,排名第二#include原创 2010-08-09 15:31:00 · 397 阅读 · 0 评论