简要题意:
求出以从每个节点到根形成的括号序列的合法对数。
算法一
观察到 n ≤ 8 n \leq 8 n≤8 ,所以我们可以用 纯粹的暴力 。
用 O ( n ) O(n) O(n) 时间得出当前节点到根的字符串。
然后 O ( n 2 ) O(n^2) O(n2) 枚举子串。
再用 O ( n ) O(n) O(n) 暴力判断(用栈)。
时间复杂度: O ( n 5 ) O(n^5) O(n5).
实际得分: 10 p t s 10pts 10pts.
优化一
用 s i s_i si 表示 i i i 号节点对应的括号。
用 h i h_i hi 表示当前节点到根的字符串。
用 f a i fa_i fai 表示当前节点的父亲编号。
则:
h i = h f a i + s i h_i = h_{fa_i} + s_i hi

博客详细介绍了洛谷P5658括号树问题的解决方案,从暴力方法到逐步优化,包括算法一的O(n^5)复杂度,优化一的O(n^4),优化二的O(n^3),直至优化三实现O(n)的时间复杂度,最终获得100pts的实际得分。
最低0.47元/天 解锁文章
592

被折叠的 条评论
为什么被折叠?



