2025.4.2 数形结合 & 思维方法选讲

4.2 数形结合 & 思维方法选讲

A - 合唱

考虑第 \([l,r]\)A 一定匹配第 \([l,r]\)B,于是 \(g(l,r)=\sum max(0,b_i-l)\)

C - [CF1637H] Minimize Inversions Number

选择 1 个元素,逆序对减少 \(w_i=\sum\limits_{j=1}^{i-1}[p_j>p_i]-\sum\limits_{j=1}^{i-1}[p_j<p_i]\)

选择多个下标 \(a_1,a_2,\dots,a_k\)\(\sum w_{a_i}+{k\choose 2}-2{\rm inv}(p_{a_1},p_{a_2},\dots,p_{a_k})\)

到这里,我们无法确定选哪些数。

随机排列打表发现,i+1 的方案是从 i 的方案扩展的。
也就是说,我们理应可以单独维护加入每个 \(a_i\) 的代价。

发现一件事情:对于极小逆序对 \((i,j)\),选 \(j\) 一定不劣。
证明考虑在二维平面上逆序点对的变化。

所以如果选 \(i\),那么它后面比它小的数一定都选了,这样就可以拆贡献:
\(f_i=w_i-2\sum\limits_{j=i+1}^n [p_j<p_i]\)

\(w_i,f_i\) 都可以 $O(n\log n) $ 预处理。
贪心的按 \(f_i\) 从大到小选即可。

G - [CF2023F] Hills and Pits

  1. 单组怎么做?
  2. 固定起点,终点?
  3. 上界?\(2n\)

子问题:\(1\to n\)

发现前缀和 \(s_i<0\) 的位置都需要回头,\(ans=n-1+2\sum[s_i<0]\)

原问题:\(s\to t\)(不妨 \(s<t\)

\(s\to l \to s\),再 \(s\to t\),最后 \(t\to r\to t\)

两头是容易的,中间就是子问题。

\(ans=2(r-l)+\sum\limits_{i\in[s,t]} [s_i\ge s_l]\cdot(-1)+\sum\limits_{i\in[s,t]} [s_i<s_l]\cdot 1\)

于是相当于求最小子段和。

\(s_l\) 从小到大扫描线,线段树维护 \(\pm 1\) 序列最小子段和。

I - [Luogu 10197] Minimum Sum of Maximums

经典题,到处都讲过。

转化:\(\max(a_i,a_{i+1})=\frac{a_i+a_{i+1}+|a_i-a_{i+1}|}{2}\)

子问题:固定 \(L,R\),重排序列 \(a\) (不妨 \(L\le R\)
结论:\(L,a_1\le a_2 \dots \le a_n,R\)
\(ans=|L-a_1|+a_n-a_1+|R-a_n|\)

\(a_1\) 增加,\(a_n\) 减小一定不劣,故值域区间要么相离要么包含,考虑在值域上 dp 分配。

\(f(l,r,S)\) 表示 \([l,r]\) 区间分配了 \(S\) 集合。
\(f(l,r,S)\leftarrow f(l,k,T)+f(k+1,r,S - T)\)
\(f(l,r,S)\leftarrow f(l+1,r-1,S-{i})+calc(l,r,i)\)
\(f(l,r,S)\leftarrow f(l+1,r,S),f(l,r-1,S)\)

复杂度 \(O(3^kn^2)\)

posted @ 2025-04-17 20:42  Cindy_Li  阅读(30)  评论(0)    收藏  举报