蒟蒻由于仍然苟活在$1jf$,不得不接受省选题的吊打$QWQ$
蒟蒻由于拿了大神们不屑打的弱智暴力,而大神们$T3$的各种快速变换没调出来,所以拿到辽人生第一个$1jf$黄名
既侥幸又$kx$
T1 Tree
难道要用$lct?$
观察模样发现其实并不需要换根
利用$dfn$的性质就完事了
他所要求的各种操作,都是可以通过任意一次$dfn$序各种特判等效地完成
例如:找两个点的$LCA$
在任意一个$dfn$序下
如果$root$在$lca(u,v)$的子树外,那显然就是$lca(u,v)$
否则找$u,v$,$u,root$,$v,root$的$lca$,三个点里选深度最大的
再例如:找一个点的子树区间
在任意一个$dfn$序下
如果$root$在$lca(u,v)$的子树外,那就是$[dfn_l[lca(u,v)],dfn_r[lca(u,v)]]$
否则把$root$倍增到$lca(u,v)$的儿子处,他在哪个儿子就把哪个儿子的$dfn$区间去掉,剩下的部分全是
主要靠yy吧
T2 function
考试的时候发现他会跑到一个地方然后一路走到黑
于是打了%%% $skyh$ %%%不屑一打的$27pc bf$
结果多打的$14pc$让我高了%%% $skyh$ %%% $1pc 2333$
其实没什么值得高兴的因为这$14pc$实在太无脑了
感脚$cbx 73pc$的暴力才像个样QWQ
考试的时候往深里想了想,发现对于每个位置都有一个阈值,超过这个阈值就向后走,否则停在这里
但是没有想到用单调栈维护一个凸包来干这个阈值
主要是没有想到把询问离线所以没有想到后边
题解写它是个下凸包
但是不妨理解成一个上凸包
为什么呢,如果以询问的$x$值为横坐标,对应的答案为纵坐标,建个系,把(从当前位置出发)每个位置对应的直线画出来
画出来的就是个上凸包,我感觉这样决策的取舍也比较好理解了
(刚给两个同学讲了他们说我的思路并不好理解qwq)
可能只是因为是自己yy出来的缘故所以感觉好理解吧
如果新加进去的直线斜率比栈顶小,那栈顶就是废物(不可能停在栈顶位置)
如果上一个条件没有满足,但是如果新直线与次栈顶的交点处,栈顶的答案不如新直线和次栈顶优,那么栈顶也废了(没有x使得询问结果为栈顶直线)
然后这题就没了
不过由于我特殊的建系方式,我栈的直线只是相对关系不发生变化,但是他们的表达式时刻在变...
每次计算交点,点值等等...都得动态计算表达式
然而其实比较好打..
T3 Or
神仙$FFT/NTT$,神仙生成函数,神仙泰勒展开
我感觉离我能写这题题解还要一段时间..