OnlineJudge
文章平均质量分 84
tragedies
这个作者很懒,什么都没留下…
展开
-
hdu2083 简易版之最短距离
简易版之最短距离Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11656 Accepted Submission(s): 5218Problem Description寒假的时候,ACBOY要去拜访很多朋友,原创 2014-11-08 22:50:54 · 459 阅读 · 0 评论 -
hdu2083 简易版之最短距离
简易版之最短距离Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11656 Accepted Submission(s): 5218Problem Description寒假的时候,ACBOY要去拜访很多朋友,原创 2014-11-08 22:51:58 · 475 阅读 · 0 评论 -
hdu2095 find your present (2)
find your present (2)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/1024 K (Java/Others)Total Submission(s): 15975 Accepted Submission(s): 6079Problem DescriptionIn the n原创 2014-11-08 22:34:17 · 442 阅读 · 0 评论 -
[bzoj1503][NOI2004]郁闷的出纳员
本题依然是一道数据结构题,对本题而言,依然可以用splay来解。本题的一个难点(对于我这个弱菜而言)是如何动态的改变平衡树中的值。其实我们可以借鉴线段树中的lazy tag的思想,因为若要变动则是整棵树一起变,所以我们可以开设一个全局变量delta表示此时对整棵树的改变值,这样一来,在每次插入节点x时,我们把x-delta插入平衡树中(想想这是为什么,不难),然后检查时若此时的节点y满足y+d原创 2013-06-14 19:54:11 · 709 阅读 · 0 评论 -
[bzoj1500][NOI2005]维修数列
终于写过了,在这里庆祝一下。在开始前先推荐一篇论文运用伸展树解决数列维护问题,jzp大神写的关于splay树区间操作的方法。这题很考验代码的细节能力。(大神可以忽略下面弱菜的一些弱弱心得了)首先是初始化,初始化中的两个节点的初值应要因题而异,在本题中因为要求一个节点的max值,故两个节点的初值不能随便赋值,而应把初值赋为-INF,否则会导致结果错误。(在几千的数据里差错真心纠结....原创 2013-06-14 11:08:51 · 836 阅读 · 0 评论 -
[bzoj1208] [HNOI2004]宠物收养所
本题考查的是数据结构,很基础的平衡树就可以解决,所以本题c++的同学可以用stl库开挂直接过的,而像我这种暂时不愿转c++的弱菜只好手写平衡树了。这题用splay做的话难度不是很大,一些基本的操作就可以解决问题,但是在写代码的时候还是得需要足够的细心和耐心。值得注意的是怎样判断当前树里记录的是宠物还是主人。不难发现,树里记录的不管是宠物还是主人操作都是一样的,所以可以开一个变量记录当前树里记录原创 2013-06-14 15:08:07 · 926 阅读 · 0 评论 -
[bzoj1269][AHOI2006]文本编辑器editort
这道题跟noi2005的维护序列类似,而且要比它简单一点,故用splay的话,只要仔细认真即可,不是很难。值得注意一点是在找前驱,后继等点时,不需要单独写一个过程,只要找出它们的位置(即它们是序列中第几个字符)即可。const MAXN=2097152;type date=record ch:array[0..1]of longint; f,sz,rev:longint;c:原创 2013-06-14 16:31:10 · 828 阅读 · 0 评论