2025.2.21
2025.2.21
上午常州中学模拟赛,一如既往的码力场。
game
显然确定起点后,每一步选哪个球都是确定的。
考虑 \(k\) 步能到 \(p\) 的起点 \(x\) 有哪些要求。
- \(k-1\) 步形成 \([p+1,p+k-1]\) 或 \([p-k+1,p-1]\) 的连通块(下面以 \([p+1,p+k-1]\) 为例)
- \(a_{p+k}>max(a_{[p,x-1]})\),否则会走到 \(p+k\)
- \(max(a_{[p,x]})>max(a_{[x+1,p+k-1]})\),否则不到 \(k\) 步就会走到 \(p\)
找到 \([p,p+k-1]\) 的最大值位置 \(mxp\)
- 若 \(a_{mxp}<a_{p+k}\),则 \(x>mxp\) 的位置都可以
- 特判一下 \(x=mxp\) 行不行
容易用 ST 表维护,时间复杂度 \(O(n\log n)\)
graph
发现最后一定是选“极小”的矩形,即没有被其他矩形包含的。
找出这些小矩形和可以匹配的大矩形,费用流跑二分图最小权完美匹配即可。
因为“极小”矩形最多是 \(n^2\) 级别的,故网络流复杂度极低。
问题在如何找到这些“极小”矩形。
暴力枚举所有边找到所有交出的矩形,再暴力判断包含关系,看起来好像是 \(O(n^8)\) 的,但实际卡不到这么多,完全可以通过。
题解是离散化后建出网格,同一个“极小”矩形内的小方格一定是由相同的大矩形集合覆盖的,做一遍染色 + bfs 同色连通块即可。
MX-Day7-T2 seq
最终序列一定是一段 0 + 一段 1
枚举分界点 \(x\) ,则一定选 \([1,x]\) 所有 0 和 \([x+1,n]\) 所有 1。
如何保证这样选一定是最长的?
即不存在 \([p,x]\) 使得 \(ct1[p,x]>=ct0[p,x]\),且不存在 \([x+1,q]\) 使得 \(ct0[x+1,q]>ct1[x+1,q]\)。
不妨认为 0 的权值为 \(-1\),1 的权值为 \(1\),则上述要求等价于 \(\min pre_q\ge0\) 且 \(\max suf_p <0\)
于是可以 \(f_{i,j}\) 表示从 \(i\) 开始 \(\min pre_p=j\) 的计数。
把 \(XY\) 拆成 \((X-Y)Y+Y^2\),于是只需要分别考虑 0 和 1 的个数就可以。
注意:\(E(Y^2)\neq E(Y)^2\)
所以 dp 值要记录三个,分别是 \(s_1=\sum Y\times ct_Y,s_2=\sum Y^2 \times ct_Y,s_3=\sum ct_Y\)
转移时,当 \(Y\to Y+1\),\(s_1\to s_1+s_3\),\(s_2\to s_2+2s_1+s_3\)( \(\sum (Y+1)^2=\sum Y^2 + 2\sum Y + \sum 1\))
每次加入一个数,计算影响,刷表。
写成一坨...

浙公网安备 33010602011771号