把任务里攒的题清一下
P5298 [PKUWC2018] Minimax
线段树合并模板题。把dp式子列出来,发现是前后缀和,然后直接权值线段树合并就做完了。
学会了线段树合并时维护dp系数(这里是前后缀)的技巧/ll
The Classic Problem
提示有点过于明显了。
光是2的幂的边权不足以优化求最短路过程,考虑优化高精度。用权值线段树维护,比较大小直接二分+LCP,加法直接二分+区间/单点修改。其实只需开 $n+m$ 棵树,显然存的下。
LCC
考虑第一次meet只有 $2*n$ 种不同情况,直接按所需时间从小到大枚举,统计完一种情况就将这种情况对应方向设为不可能,直接用线段树维护矩阵即可。
P.S.:此题用上述每次统计时强制选再强制不选的做法可能会TLE(调试时按题解换了前缀概率相减,只需修改1次,但最后发现是错在求v时忘记加abs了)
Painting Edges
板板题,*3300的【模版】线段树分治/二分图。
只是将一种颜色推广至多种颜色,多开几颗线段树就行了。修改要判合法才改,可以合并到当前操作时再判断并修改。
有点卡空间。不要对每种颜色开vector,否则会像我一样报[Error] unrecognizable insn。手写stack可能数组会被卡(orz stl::stack)
其他题比较正常。CF893F卡了5、6发TLE on 45,在CF记录上翻半天翻到一份一样错误的记录,结果是因为区间修改递归到了l==r。
我:应该不会这么唐吧。
结果一看,贺的板子是二分,就这里没改(唐)。
标签:二分,线段,合并,加训,修改,直接,ds From: https://www.cnblogs.com/skh504535/p/18009518