摘要:分析 可以发现第一列和最后一列永远不会被删除,于是我们可以想到维护前后缀最小生成树,但是直接维护的话显然时间空间两爆炸。(通过上网找题解)可以发现我们关心的只是最左边和最右边两列,而不关心内部的连边情况。所以我们可以仅维护这两列的节点在最小生成树上形成的虚树,边权是对应链上最大的边权,合并时对两棵虚
阅读全文
摘要:分析 蒟蒻不会$SAM$,只好来一发主席树优化建图的题解。 令$N$为原字符串的长度。首先我们考虑一个最基本的思路,我们发现$A_j$能接在$A_i$后面当且仅当存在一个$B_k$被$A_i$支配且是$A_j$的前缀。考虑建图,如果$A_i$支配$B_j$,那么从$A_i$向$B_j$连一条单向边,
阅读全文
摘要:描述 RT 先手必胜条件 起点是二分图最大匹配的必需点。 证明 ~~懒得写了。~~ "链接"
阅读全文
摘要:分析 类似于点分治的思想,只统计经过分割线的最短路,然后把地图一分为二。 代码
阅读全文
摘要:分析 根据题目中的要求,从$s$出发前往$f$一定可以,并且只可能经过这两个结点所在的点双连通分量和它们之间的点双连通分量,因此切换点$c$只能从这些点中选取。 建出圆方树后,因为圆方树上一条路径的两个端点(圆点)不能作为切换点,并且路径上其他的圆点都被两个路径上的点双连通分量所包含,可以发现,如果
阅读全文
摘要:这个东西很久以前就学过了,不过前几天看到后又一脸懵逼,于是赶紧滚来复习一下。 简介 斯坦纳树是将图的一个指定点集内的所有点连通的一棵树,常见的问题有最小斯坦纳树(Minimal Steiner Tree)(怎么也叫MST啊喂)。和最小生成树不同的是,斯坦纳树可以包含不在指定点集内的点。 求解方法 斯
阅读全文
摘要:[BZOJ4349]最小树形图&[BZOJ2260]商店购物 分析? 做法都是先通过最优方案每种选一个,这样最后的答案一定最优。每种选一个的最优方案可以用最小树形图求。 不要忘记写 。 第二个题坑点超多,有$M_i=0$的情况,据说还有自环。 代码 cpp include define rin(i,
阅读全文
摘要:[省选练习]Path:期望DP+Dijkstra 题意 \(n,m \leq 10^5\) 分析 很有趣的一道题。 记$dis[x]$为从$x$到$n$的期望时间。 题目中要求的最优策略,实际上就是只从$dis$大的地方向$dis$小的地方移动。 所以,对于两个相邻的结点$x,y$,$dis[x]$
阅读全文