bzoj 1798 维护序列seq 线段树

摘要: 裸的线段树,注意标签下放就行了多么痛的领悟,一定要开int64/************************************************************** Problem: 1798 User: BLADEVIL Language: Pascal Result: Accepted Time:24168 ms Memory:11948 kb****************************************************************/ //By BLADEVILtype rec ... 阅读全文
posted @ 2013-12-11 08:36 BLADEVIL 阅读(378) 评论(1) 推荐(0) 编辑

bzoj 2753 最小生成树变形

摘要: 我们根据高度建图,将无向边转化为有向边首先对于第一问,直接一个bfs搞定,得到ans1然后第二问,我们就相当于要求找到一颗最小生成树,满足相对来说深度小的高度大,也就是要以高度为优先级假设现在有一种添边的方案(一共添ans1-1条,类似于Kruskal的过程)那么对于添边,我们可以看做是现有一颗树,通过连接一条边将一个点加入到树里的过程那么对于添加一个点,假设有一种方案先加入X,然后加入Y,HIGH[X]Y,说的是Y点)的高度为第一关键字,边长为第二关键字就好了。后来看了网上别人的思路,上面我写的加边的那一部分,可以通过prim来理解,prim就是现在有一个点的集合然后在剩下的点里找到距离集合 阅读全文
posted @ 2013-12-11 06:45 BLADEVIL 阅读(317) 评论(0) 推荐(0) 编辑

bzoj 2120 线段树套平衡树

摘要: 先吐下槽,改了快一个小时,最后发现是SBT的delete写错了,顿时就有想死的心。。。。。首先对于这道题,我们应该先做一下他的小问题,bzoj1878,虽然和这道题几乎一点关系没有,但是能给我们一个思路的启发我们先考虑没有修改,只有区间询问内个我下面的糖果是画笔的意思。。。我也不知道咋着题就读错了。。。。那么对于一个糖果i,假设他的颜色是col,那么我们找到col颜色上一次出现的位置,为color[i],那么对于一个区间L R里的color值,我们要找不同的颜色,那么假设一种颜色在L R里出现多次那么这些糖果的color值除了最先出现的以外,剩下的color值都大于等于L,也就是我们要找在区间 阅读全文
posted @ 2013-12-10 19:15 BLADEVIL 阅读(351) 评论(0) 推荐(0) 编辑

bzoj 1208 HNOI2004宠物收养所 平衡树

摘要: 裸平衡树,恢复手感用的//By BLADEVIL var n :longint; i :longint; x, y :longint; t, tot :longint; key, s, left, right :array[0..50010] of longint; ft :longint; a, b :lo... 阅读全文
posted @ 2013-12-10 07:32 BLADEVIL 阅读(253) 评论(0) 推荐(0) 编辑

bzoj 1089 SCOI2003严格n元树 递推

摘要: 挺好想的,就是一直没调过,我也不知道哪儿的错,对拍也拍了,因为数据范围小,都快手动对拍了也不知道哪儿错了。。。。我们定义w[i]代表深度1) do delete(mul,1,1);end; function mi(x:ansistring):ansistring;var p :longint; ans, sum :ansistring;begin ans:='1'; sum:=x; p:=n; while p0 do begin if p mod 2... 阅读全文
posted @ 2013-12-09 13:42 BLADEVIL 阅读(785) 评论(0) 推荐(0) 编辑

bzoj 2330 SCOI2011糖果 查分约束系统

摘要: 就根据题目中给的约束条件建图就行了需要注意的是,我们要做的是最长路,因为需要约束每个点都是大于0那么可以建一个超级源指向所有点,超级源的dis是1,边长为0那么这样做最长路就可以了好了我们这么写完了,之后发现re了,然后改大了点数组发现tle了。。。。然后我也不知道怎么改,超级源连接所有点的时候,是for i:=1 to n do 的,这样建完图之后,再做spfa相当于直接将n-1的点放入队列中,然后我改了下连接的时候for i:=n downto 1 do 那么相当于将1-n放入队列中,然后这样就A了,但是内存太大(之前RE开的),后来干脆把超级源去掉,直接将1-n放入队列,就可以直接A了P 阅读全文
posted @ 2013-12-09 08:22 BLADEVIL 阅读(968) 评论(0) 推荐(0) 编辑

平衡树之splay讲解

摘要: 首先来说是splay是二叉搜索树,它可以说是线段树和SBT的综合,更可以解决一些二者解决不了的问题,splay几乎所有的操作都是由splay这一操作完成的,在介绍这一操作前我们先介绍几个概念和定义 二叉搜索树,即BST(binary search tree),这样的树有一个关键字,满足对于每个... 阅读全文
posted @ 2013-12-08 23:21 BLADEVIL 阅读(5608) 评论(0) 推荐(7) 编辑

bzoj 1878 SDOI2009树状数组 离线操作

摘要: 本来想写2120的,结果想起来了这个我们先对于询问左端点排序,用树状数组存区间字母个数,对于每种字母,第一次出现的位置记录为1,剩下的记录为0,然后记录下,每种颜色后面第一个和他相同颜色的位置然后扫询问,对于一个询问直接输出区间和,然后假设当前询问是l1,r1,下一询问是,l2,r2,我们把l1到l2区间内的每个位置颜色的后一颜色赋值成1,然后继续处理下个询问就好了。/************************************************************** Problem: 1878 User: BLADEVIL Language: Pas... 阅读全文
posted @ 2013-12-08 21:01 BLADEVIL 阅读(327) 评论(0) 推荐(0) 编辑

bzoj 3196二逼平衡树 线段树套平衡树

摘要: 比较裸的树套树,对于区间K值bz上有一道裸题,详见题解http://www.cnblogs.com/BLADEVIL/p/3455336.html(其实题解也不是很详细)//By BLADEVILtype rec =record left, right, root :longint; end;var n, m :longint; a :array[0..100100] of longint;... 阅读全文
posted @ 2013-12-08 20:27 BLADEVIL 阅读(407) 评论(0) 推荐(0) 编辑

bzoj 1861 splay

摘要: 就是裸地splay,然后自己写的不是特别好,tle了,最近时间比较紧迫,有时间了改下,在此记录另附转载pascal AC代码最下面/************************************************************** Problem: 1861 User: BLADEVIL Language: Pascal Result: Time_Limit_Exceed****************************************************************/ //By BLADEVILconst ... 阅读全文
posted @ 2013-12-08 17:15 BLADEVIL 阅读(412) 评论(0) 推荐(0) 编辑