摘要: 题目:绝世好题。 暴力 dp 显然 \(O(n^2)\) 转移即可。 单调队列优化 观察到只有某二进制位两个数都为 \(1\) 时才能转移,因此我们把每个二进制位开一个单调队列,然后对于一个数 \(a\) ,找到它是 \(1\) 的二进制位并选其单调队列的队头进行转移,在这之后把这个数加入符合要求的 阅读全文
posted @ 2024-07-22 21:14 KS_Fszha 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目:编辑距离 。 思路 显然,定义 \(f[i][j]\) 表示字符串 \(a\) 中前 \(i\) 个字符到 字符串 \(b\) 中前 \(j\) 个字符的编辑距离。 那么对于 \(a_i=b_j\) 时,我们对当前位无需进行任何编辑操作,则 \(f[i][j]=f[i-1][j-1]\) 。 阅读全文
posted @ 2024-07-22 15:20 KS_Fszha 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 朴素算法 不必多说,\(O(n^2)\) 的暴力 dp 转移。 优化算法 时间为 \(O(n \log n)\) ,本质是贪心,不是 dp 。 思路是维护一个单调栈(手写版),使这个栈单调不降。 当该元素 \(\ge\) 栈顶元素时,把这个元素压入栈中。 否则,在单调栈中找到第一个大于该元素的项,把 阅读全文
posted @ 2024-07-22 12:33 KS_Fszha 阅读(27) 评论(0) 推荐(0) 编辑