「Log」复健记录
\(\color{gold}{P7941}\)
平凡贪心。
首先注意到性质:如果我们想让某表达式值为 \(0\),只需尽可能生成 &;若为 \(1\) 则尽可能生成 |。
考虑后缀表达式可以建成树的结构,我们只需要分别统计某个非叶子节点是否能为 \(0\) 或 \(1\) 即可,随后统计符合要求的节点。
其实根本不需要建树,只要按后缀顺序遍历,那么一个节点肯定会晚于子树内其他节点,所以按照所给字符串直接遍历即可。
错误:
- 下标写溢出了。
\(\color{royalblue}{P4053}\)
反悔贪心,按照 \(T_2\) 从小到大遍历,能修则修,否则看能否用它替换最不合适的那一个(用大根堆维护即可)。
\(\color{royalblue}{P4053}\)
先将不可选块标记为负无穷,这样单纯求最优即可。
对于一个固定的长度,枚举起始行和终止列,在前缀和前提下记录最优的起始列(即前缀和最小),对于每个终止列求一个最优值即可。(暴力是四层枚举,只是前缀和优化掉一层罢了。)
\(\color{royalblue}{P4053}\)
先将不可选块标记为负无穷,这样单纯求最优即可。

浙公网安备 33010602011771号