摘要:
基环树森林,然而我比较菜,直接tarjan找环。 发现缩点之后变成了DAG,每一个点往下走一定会走到一个环,缩点之后搜一遍看看会走到哪个环以及那个环的编号是多少,答案就是环的$siz$$ + $要走的路程。 比较垃圾的我忘记了判重边WA了好多发…… 时间复杂度$O(n)$。 Code: #inclu 阅读全文
摘要:
发现数据范围很小,想到状压dp,然后就愣住不会了。 表示太菜了并没有接触过轮廓线dp这种操作。 首先发现合法的操作过程中一定是这样子的: 按照行来看发现每一行单调不递增。 我们用$1$来表示竖着的轮廓线,用$0$来表示横着的轮廓线,那么来看一下样例,一个棋子都没有放的状态是$00011$,而在唯一的 阅读全文
摘要:
唔,太菜了,弄了好几个小时。 状压dp,设$f_{s, i}$表示选了集合$s$,以$i$结尾的最短长度,设$g_{i, j}$表示串$i$的后缀和串$j$的前缀的最长匹配长度。 $f_{s, i} + len_{j} - g_{i, j} $ 可以转移到$f_{s | (1 << (j - 1)) 阅读全文