摘要: Sol 树形DP. 听说有非常神奇的高斯消元的做法...orz... 然而我只会 \(O(n)\) 的树形DP. 首先一个点的状态只于他的父节点和子树有关,跟他 子树的子树 和 父亲的父亲 都没有任何关系. 这样就可以DP了. \(f[i][0/1][0/1]\) 表示\(i\)节点,点了 \(0/ 阅读全文
posted @ 2016-09-10 22:03 北北北北屿 阅读(282) 评论(0) 推荐(0) 编辑
摘要: Sol 并查集. 一个点所能到达的最远是单调不降的.然后将链延长到两倍,预处理出每个点到达的最远点,然后倒着计算深度. 再然后一直跳,跳到>=x+n的点,因为跳到的点都能到最终的点,并且不影响后面的答案. Code 阅读全文
posted @ 2016-09-10 21:57 北北北北屿 阅读(197) 评论(0) 推荐(0) 编辑
摘要: Sol 排序+树状数组. 我们要找一个满足下列条件的最长序列. \(j-w[j]<=i-w[i],j<i,w[j]<w[i]\) 就是维护一个偏序集的最长上升子序列,然后第一个和第三个式子加起来可以推出第二个式子,然后就是二维偏序,用树状数组来维护就可以了. Code 阅读全文
posted @ 2016-09-10 21:44 北北北北屿 阅读(157) 评论(0) 推荐(0) 编辑
摘要: Sol 线段树+Hash. 首先暴力 等差子序列至少3项就可以了,就枚举中项,枚举公差就可以了,只需要一个数在中项前出现,另一个数在中项前没出现过就可以了.复杂度 \(O(n^2)\) 然后我想了一个虽然复杂度没变(因为我不会设计这个数据结构...) 但是好像有点用的算法,就是枚举中项,考虑从一个中 阅读全文
posted @ 2016-09-10 14:10 北北北北屿 阅读(245) 评论(0) 推荐(0) 编辑