有没有一种算法可以在多项式时间内解决以下问题:
我们在 bitset 中连接位:
给定位集的最大连接数是多少?
最佳答案
我们可以在这里使用动态规划。
(l, r)
- 给定字符串的 [l, r]
子字符串。 就是这样。时间复杂度是
O(n^3)
(每个状态都有 O(n^2)
状态和 O(n)
转换)。这是一个伪代码(为简洁起见,省略了内存):def calc(l, r)
if l >= r
return 0
res = calc(l + 1, r)
for k = l + 1 to r
if match(s[l], s[k]) // match checks that two characters match
res = max(res, 1 + calc(l + 1, k - 1) + calc(k + 1, r))
return res
关于algorithm - CFG算法中的局部搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30277809/