2014年2月12日
摘要: 块状数组是一个非常有趣的数据结构,利用分块的思想将再简单不过的数组化腐朽为神奇,sqrt(n)虽不及log(n),但是性价比还是很好的。但是需要注意的是块状数组一定要从0开始,这样可以求出i在哪个块中 pos = i / s , 其中s 为一个块的规模。块状数组就是将数组以sqrt(size)为单位分割成块,对于每一块单独维护其相应的信息。用这样的方法可以做很多线段树可以做的题目,例如A Simple Problem with Integershttp://poj.org/problem?id=3468题意: 给一个数列,M个操作 add l r c 把l到r的每一个数加上c ; query 阅读全文
posted @ 2014-02-12 22:01 Zbeginer 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 离线算法即将所有询问一并读入,同时处理,同时回答,只要注意保存每个询问的时间顺序即可。 在线算法即对于每个询问及时处理,及时回答。 对于处理最近公共祖先的算法有很多种,tarjan算法,倍增算法,或者将lca转化成RMQ问题。 其中tarjan算法属于离线算法。 个人认为tarjan算法巧妙地利用了dfs的深度优先搜索的特性,对于一棵树的节点进行dfs遍历 我们用黑,白,灰三种颜色来表示节点... 阅读全文
posted @ 2014-02-12 17:07 Zbeginer 阅读(266) 评论(0) 推荐(0) 编辑