WXYZ 的个人资料WXYZ的异人馆照片日志列表 工具 帮助

日志


11月30日

线段树初级心得

    一次做题,最重要的并不在于你做出了多少题,而在于你在这次比赛中有进步。因此我对上星期的POJ月赛非常满意。
    这次月赛我只做出一题:E题。我一看,马上知道是线段树。可惜我虽然在很久以前就是好好学学线段树的想法,但久久没有实现。遇到这样一题,只好傻在那里。然后翻翻其它题,觉得除了B题还能想想外,其它暂时还差点。然后在攻B题两个小时后,还是以失败告终。这时我非常失望,竟然连一题也做不出来?然后下个决心,马上做E题,马上学线段树。
    当即从网上找来一个线段树的论文+PPT,大概看了下,就开始写代码了。第一次写,卡了不久,终于写好了,提交下,超时。然后找出超时原因,修改提交,一个Wrong Answer。第一次写啊,这样的结果并不出乎我意料。然后就自己开始找数据检验代码了。不久找到一组,修改后,再次提交,还是Wrong Answer。改吧改吧,能完成就是很好的了。修改提交,终于Accepted了。当时无比兴奋啊,走遍各个知道我有做题的宿舍,逐个欢呼。我终于写出了第一个线段树了。
    然后连续三天,每天都做一道线段树,有27773368和sicily的山海经。做了几天,终于可以说得上有点初级感想了。列举如下:
 
1、线段树之所以快,在于预处理,然后可以二分快速得出答案,对于多次区间操作的题特别适合。
2、由于线段树的特性,要使之快,必须在查询或修改某个区间并且此区间的首尾与线段树某段的首尾完全重合时,就必须终于再向深处递归(最多还可以再深一层),就必须在此区间上完成操作并且return,也正因为有这个才能保证线段树的log(n)时间。
3、构造线段树时,还须想清楚,在修改区间时,是否逐步修改,还是采用在统计时逐步统计。
4、在进行递归时,要想清楚这层递归与上下两层递之间的关系,怎样传递参数等。最好先考虑最底层,然后再逐步向上思考。
 
    做了几天,发现原来月赛那题还是非常简单的,像2777这题就做了我好久。
    此为线段树初级心得,可以说是线段树最基本的东西吧。对于区间的插入与删除等,我还是不会,可能后来会有个中级或高级心得了。

评论 (3)

请稍候...
很抱歉,您输入的评论太长。请缩短您的评论。
您没有输入任何内容,请重试。
很抱歉,我们当前无法添加您的评论。请稍后重试。
若要添加评论,需要您的家长授予您相应权限。请求权限
您的家长禁用了评论功能。
很抱歉,我们当前无法删除您的评论。请稍后重试。
您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
完成下面的安全检查,您提供评论的过程才能完成。
您在安全检查中键入的字符必须与图片或音频中的字符一致。

若要添加评论,请使用您的 Windows Live ID 登录(如果您使用过 Hotmail、Messenger 或 Xbox LIVE,您就拥有 Windows Live ID)。登录


还没有 Windows Live ID 吗?请注册

zhangSonny发表:
好家伙,跟我学会计学啦。
12 月 29 日
WXYZ发表:
这句话对于你来说同样适用!
12 月 1 日
Fiona发表:
嗯,加油!其实有一句话虽然老土,但非常真理.
Knowledge is power.
11 月 30 日

引用通告

此日志的引用通告 URL 是:
http://wxyz202.spaces.live.com/blog/cns!D4DC981555112325!566.trak
引用此项的网络日志