三分套三分,但要注意极小值不止一个。 但这些极小值显然都不会很接近,把圆分段,暴力枚举三分。
dfs判断左右/上下是否联通
一道论文题(monotone gray codes and the middle levels problem)。大构造。 首先按照每个点1的数量分层排列。如果可以相邻排列就连一条边。 按n由小到大递归构造。需要保证进入下一层的点相互之间相连,即 x 0 x 1 x 2 x 3 . . . x_0x_1x_2x_3... x0x1x2x3...恰好形成一条从起点到终点的路径, y y y同理是一条链 当已经得到了 n = k n=k n=k 时的答案。 那么对于 n = k + 1 n=k+1 n=k+1 的情况,将 n = k n=k n=k 时的情况每个点后面加上0,路径对应到新图上,那么每个点后面加上1的点对应下一层,如下图可以用与之前相反的路径来遍历多出来的部分的点,主要能保证x,y两条链就能比较容易的构造连接的点的情况。
难度在读题…稍微讨论下情况就行了。
后缀数组,然后枚举长度,通过height判断该长度相同的串是否存在不覆盖的两个,复杂度 O ( N 2 ) O(N^2) O(N2)。似乎在sa上可以维护一下可以 O ( N log N ) O(N\log N) O(NlogN)。
