Examples

2022-12-14 #12 墙角折枝不认命的枝桠 深灰色沙土中书写描画

——霾《象牙塔少女》

image

确实。


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)\)

image

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\) 的时间,那么上述问题不过是斜杨表计数。

\[\#STab(\lambda/\mu)=|\lambda/\mu|!\det(\begin{cases}\frac{1}{(\lambda_j-\mu_i-j+i)!}&\lambda_j-\mu_i-j+i\geqslant 0\\0&\text{otherwise}\end{cases})_{i,j=1}^n \]

得到的式子是一样的。


又开始摆了呜呜呜。

把规则类怪谈【第二学院】看完了。


晚上 vp:SHCPC2022

不懂啊,感觉做了点签到题比赛就结束了,特别菜。

posted @ 2022-12-14 11:31  xiaoziyao  阅读(113)  评论(0)    收藏  举报