我真厉害

逆序对

转化后,求:

所有 \(l,r\),区间 \([l,r]\) 中值域在 \([a_r,a_l]\) 的数的最大值。

场上想到了单调关系,即:对于 \(l<l'\),若 \(a_l>a_{l'}\),则 \(l'\) 一定不比 \(l\) 优。

所以我们就可以处理出前后缀的一条单调的链。然后不会了。

Larrix 的方法是:把我们的前缀链作为统计区间,扫描后缀,更改前缀,最后在前缀处求得答案。

就是扫描线?

航行

高斯消元。但是考场上转移系数写反了痛失 30pts。

\(O(n^6)\) 是 sb 都会的做法,正常来讲半个小时就可以实现了。

考虑优化,先说 Larrix 的,他把先 dfs 找到所有合法的点再进行消元。

另一种方法是注意到合法的 \(v\) 至多为 \(2\sqrt n\),这样子复杂度就变成了 \(O(n^{4.5})\)

然后就是这个题最神的地方:

将有后效性 dp 拆成无和有,分别是根号,然后有后效性还是跑高斯消元,但是状态数就是 \(O(n)\) 了。因为我们只考虑 \((i,0)\) 的转移即可。

然后看无后效性,可以直接正推,记录概率和期望。最后 gauss 的方程长这样:\(dp(i, 0) = \sum (p(j, 0) \times dp(j, 0) + E(j, 0)) + val_{out}\)

正推的方程:\(E(x',v')\leftarrow P_{now}\times(E(x,v)+P(x,v))\)

posted @ 2024-10-07 15:32  LCat90  阅读(8)  评论(0编辑  收藏  举报