使用BIT匹配括号

时间:2010-02-27 20:47:57

标签: algorithm binary-indexed-tree

编辑:我试图解决一个问题。以下是问题的链接: http://spoj.pl/problems/BRCKTS

我可以想到两个可能的数据结构来解决问题,一个使用分段树,另一个使用BIT。 我已经使用分段树实现了解决方案。我读过有关BIT但我无法弄清楚如何使用它(我在下面提到过)


我正在尝试检查括号是否在仅包含()的给定字符串中平衡。 我正在使用BIT(二进制索引树)来解决问题。 我遵循的程序如下:

我正在使用一个大小等于字符串中字符数的数组。 我正在为)分配-1,为(分配1到相应的数组元素。

仅当以下两个条件为真时,括号内的字符串才会平衡。

  • 整个数组的累积总和为零。
  • 最小累积金额为非负数。 即数组所有前缀的累积和的最小值是非负的。

使用BIT检查条件1是微不足道的。 我在检查条件2时遇到问题。

1 个答案:

答案 0 :(得分:3)

这是一个关于二进制索引树的非常好的教程:http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=binaryIndexedTrees这里有一个更直接但不太全面的:http://programmersdream.com/data-structure/binary-indexed-tree/