尽人事,听天命。|

Jerrycyx

园龄:2年9个月粉丝:2关注:1

2025.2.16 闲话2:小技巧#2

分治恶心题:P7482 不条理狂诗曲

\(\max\) 等函数中有多个变量不好变形时,尝试将一些变量压到一起

例如本题简化方程:

\[\max(fl_{1,i}+fr_{0,j},fl_{0,i}+fr_{0,j},fl_{0,i}+fr_{1,j}) \]

其中可以将第一二项压在一起变成:\(\max(fl_{1,i},fl_{0,i})+fr_{0,j}\)

然后修改状态表示,令一个新的量 \(fl'_{1,i}=\max(fl_{1,i},fl_{0,i})\)

最后你就可以得到一个美观且易于变形的方程了:

\[\max(fl'_{1,i}+fr_{0,j},fl_{0,i}+fr_{1,j}) \]


这里的变形技巧也很巧妙。上面的 \(\max\) 式子无法直接使用,这个时候可以分类讨论。以取左侧为例,这个式子的值为(省略 \('\) 符号)\(fl'{1,i}+fr_{0,j}\) 当且仅当:

\[fl_{1,i}+fr_{0,j} \ge fl_{0,i}+fr_{1,j} \]

移项:

\[fl_{1,i}-fl_{0,i} \ge fr_{1,j}-fr_{0,j} \]

然后令 \(s(x)=fl_{1,x}-fl_{0,x}\),上式即为:\(s(i) \ge s(j)\)。至于取 \(fl_{0,i}+fr_{1,j}\),不等式倒过来即可(等号不要算重)。

保证不重不漏以后,就可以排序用双指针做了。


另外还要注意,在计算过程中一定要搞清楚方程中量的具体含义和求取要求,这道题将 \(fl\)\(fr\) 压在一起都要开四个数组,再两两取最大值合并后才能达到前面不等式里的形式。

posted @   Jerrycyx  阅读(1)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起