【BZOJ1095】【ZJOI2007】Hide 捉迷藏 线段树维护括号序列 数据结构的压缩。
2015-04-02 11:18
218 查看
链接:
#include <stdio.h> int main() { puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/44829703"); }
题解:
首先由于此题太神以至于我其实还不会这道题,所以不妨介绍一下括号序列维护树构。其实都是假的,就是一个点被扫到入栈的时候,序列加一个左括号,然后加入一个字符(可以不加),点出栈的时候就加一个右括号。
然后两点间距离就是两点的在序列的位置中间那一堆括号里,删掉一些匹配的括号后的答案,比如 )(()()(()( ,最后就变成了 )(()(( ,表示左端点需要向上走一步,右端点需要向上走两步。
然后这道题如何用括号序列维护信息呢?
……
首先我们有 [hzwer犇] 的代码:
http://hzwer.com/5247.html
其次我们有 [ ~~岛娘 ~~ ] 的注释:
http://www.shuizilong.com/house/archives/bzoj-1095-zjoi2007hide-%E6%8D%89%E8%BF%B7%E8%97%8F/
最后我们还有 [ 曹钦翔 ]的转移公式
http://wenku.baidu.com/link?url=o6-p5-T1gYE2V4hUhOzPldK__QUD-JlxYKjPV4HZ–u2kCZVFhL-vmMtmrGqpD3ze8GQ2Q7Qc6hEYW4x4BEq33zOI3d6g_F53KrcymDrfvO
当然链分治的做法我们有 [ WJBZBMR ] 的题解:
http://hi.baidu.com/wjbzbmr/item/14ea8b7cb06bea36714423d0
……
另外这个公式啊什么的请对照着代码来理解。
因为有些变量名什么的都已经混了。
代码:
(扒的hzwer的,扒得很丑,所以就不贴了Qwq)相关文章推荐
- BZOJ 1095: [ZJOI2007]Hide 捉迷藏(线段树维护括号序列)
- bzoj1095: [ZJOI2007]Hide 捉迷藏 线段树维护括号序列 点分治 链分治
- 【BZOJ】1095: [ZJOI2007]Hide 捉迷藏 括号序列+线段树
- 【BZOJ1095】【ZJOI2007】捉迷藏 括号序列+线段树维护
- bzoj 1095 [ZJOI2007]Hide 捉迷藏(括号序列+线段树)
- 【BZOJ 1095】 1095: [ZJOI2007]Hide 捉迷藏 (括号序列+线段树)
- 【BZOJ 1095】 [ZJOI2007]Hide 捉迷藏 括号序列
- bzoj1095 [ZJOI2007]Hide 捉迷藏(动态点分治|括号序列)
- bzoj1095 [ZJOI2007]Hide 捉迷藏 括号序列/动态点分治/树的数据生成
- [bzoj1095][ZJOI2007]Hide 捉迷藏——线段树+括号序列
- 括号序列 || 动态树分治 bzoj1095【ZJOI2007】Hide 捉迷藏
- 【线段树】【括号序列】【ZJOI2007】捉迷藏 Hide
- bzoj1095 Hide 捉迷藏 括号序列&线段树
- [BZOJ1095][ZJOI2007][线段树]Hide捉迷藏
- bzoj1095 [ZJOI2007]Hide 捉迷藏(括号序列+线段树/动态点分治+堆)
- [BZOJ1095]Hide 捉迷藏--括号序列&&线段树
- 【BZOJ 1095】 [ZJOI2007]Hide 捉迷藏
- bzoj 1095: [ZJOI2007]Hide 捉迷藏 动态树分治+堆
- BZOJ 1095 ZJOI2007 Hide 捉迷藏 动态树分治+堆
- bzoj1095[ZJOI2007]Hide 捉迷藏