「Log」复健记录

\(\color{gold}{P7941}\)

平凡贪心。

首先注意到性质:如果我们想让某表达式值为 \(0\),只需尽可能生成 &;若为 \(1\) 则尽可能生成 |

考虑后缀表达式可以建成树的结构,我们只需要分别统计某个非叶子节点是否能为 \(0\)\(1\) 即可,随后统计符合要求的节点。

其实根本不需要建树,只要按后缀顺序遍历,那么一个节点肯定会晚于子树内其他节点,所以按照所给字符串直接遍历即可。

错误:

  • 下标写溢出了。

\(\color{royalblue}{P4053}\)

反悔贪心,按照 \(T_2\) 从小到大遍历,能修则修,否则看能否用它替换最不合适的那一个(用大根堆维护即可)。

\(\color{royalblue}{P4053}\)

先将不可选块标记为负无穷,这样单纯求最优即可。

对于一个固定的长度,枚举起始行和终止列,在前缀和前提下记录最优的起始列(即前缀和最小),对于每个终止列求一个最优值即可。(暴力是四层枚举,只是前缀和优化掉一层罢了。)

\(\color{royalblue}{P4053}\)

先将不可选块标记为负无穷,这样单纯求最优即可。

posted @ 2025-08-13 15:43  Eon_Sky  阅读(7)  评论(0)    收藏  举报