我真厉害
逆序对
转化后,求:
所有 \(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))\)。