[ARC100E] Or Plus Max

\(b_k = \max_{i,j \subseteq k} a_i + a_j\)

注意到 \(ans_k = \max_{i=1}^k b_i\)

求证:\((i\vee j \le k) \Longleftrightarrow (\exist l \le k, \text{s.t. }i,j \subseteq l)\)

首先明确 \(i \vee j \subseteq k\)\(i,j \subseteq k\) 是等价的。

  • \(i \vee j = p \le k\),那么 \(l=p\)\(i,j \subseteq p\)。所以左能推右。

  • 显然 \(i,j \subseteq l\) 意味着 \(i \vee j \subseteq l\),所以 \(i \vee j \le l \le k\)。所以右能推左。

所以考虑求解 \(b_k\),即 \(\max_{i,j \subseteq k} a_i + a_j\)

显然我们只需要求满足 \(i \subseteq k\) 的最大和次大的 \(a_i\)。高维前缀和即可。

posted @ 2025-01-23 14:36  2huk  阅读(11)  评论(0)    收藏  举报
2048 Game
Score
0
Best
0