2022-12-14 #12 墙角折枝不认命的枝桠 深灰色沙土中书写描画
——霾《象牙塔少女》

确实。
67 P5163 WD与地图 / Ptz2018 Day8 Yuhao Du Contest 5 L
一个经典的内核包装了几层。gym 题与这道题内核类似,就只说 P5163 的做法了。
时光倒流变成加边,我们事实上只需要求出 SCC 合并的顺序,使用线段树合并即可求解。
加边,维护 SCC 形态是经典的离线问题:My own algorithm — offline incremental strongly connected components in O(m*log(m))。
又被自己演了,以为假了(
对时间分治,假设目前正在处理 \([l,r]\),令 \(mid=\lfloor\frac{l+r}2\rfloor\),我们先把加入 \([l,mid]\) 这段时间的边拿出来跑 tarjan。可以发现,在同一 SCC 中的边不会影响 \([mid+1,r]\) 的 SCC 形态,不在同一 SCC 中的边不会影响 \([l,mid]\) 的 SCC 形态。
将上面所说的一类边递归左边,回溯上来后缩 SCC,将上面所说的二类边递归右边即可。
\(\log n\) 层,每条边只会在一层贡献一次,复杂度 \(O(m\log m)\)。

68 Ptz2018 Day8 Yuhao Du Contest 5 G Good Game
这种题,感觉确实不应该是我会的啊。
首先将第 \(i\) 维全局加 \(i\),转成递增。那么只要计算出两两之间到达的方案数,就可以通过经典的容斥求得答案。
不妨设现在在点 \(A(a_1,a_2,\cdots,a_n)\),要到 \(B(b_1,b_1,\cdots,b_n)\)。
若忽略坐标限制,方案数为 \(\frac{\sum(b_i-a_i)!}{\prod(b_i-a_i)!}\)。
我们不妨计算所有 \(b\) 序列重排方案数之和:(若不递增显然答案是 \(0\))
之后再补。
后面得知了一种很简单的做法(感谢 Kubic):
发现问题与斜杨表双射,第 \(i\) 行第 \(j\) 列表示第 \(i\) 维第一次达到 \(j\) 的时间,那么上述问题不过是斜杨表计数。
得到的式子是一样的。
又开始摆了呜呜呜。
把规则类怪谈【第二学院】看完了。
晚上 vp:SHCPC2022。
不懂啊,感觉做了点签到题比赛就结束了,特别菜。

浙公网安备 33010602011771号