摘要: 题面 思路 我们首先考虑传统的链上LIS做法:保存每个长度的LIS末端的最小值,二分查找 那么这道题其实就只是搬到树上来做了而已 我们考虑一个节点,假设它的儿子已经处理完毕了 那么我们选择LIS最长的儿子进行继承,然后每次和其它儿子合并 合并的方法就是逐位取min值 合并完了以后再把当前节点二分一下 阅读全文
posted @ 2018-09-29 16:37 dedicatus545 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 题面 思路 问题转化 这个问题的核心在于,我们需要把“加入一个球、拿出一个球”这两个操作转化一下 因为显然两个操作同时进行的话,我们没有办法从单纯的组合意义去分析 我们首先把$m$个球拿出来,表示全部都选拿走球 然后对于我们选定的加入球的操作,我们一次性加入两个球 这样问题就变成了一个单纯加入球的问 阅读全文
posted @ 2018-09-29 15:52 dedicatus545 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 题面 思路 首先,可以确定的是,本题因为每个点只有一条入边,所以整个图肯定是一个基环外向树森林 那么我们首先考虑树上的情况: 我们考虑一个真点,它会对它的子树里面的所有假点产生贡献 一个真点对一个假点的贡献,等于这个真点到这个假点路径上的最大边权(在这个时间之后,他们俩就联通了) 我们要求的是所有贡 阅读全文
posted @ 2018-09-29 11:41 dedicatus545 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 题面 思路 这题很像 "bzoj4827礼物" 还是一样的思路,我们把$y$倍长,$y[i+k]=y[i]+n$ 然后令$f(s,c)$表示从$y$的第$s$个开始匹配,位置偏移量为$c$的答案 可以得到$f(s,c)=\sum_{i=0}^{n 1}(x_i y_{i+s}+c)^2=\sum_{ 阅读全文
posted @ 2018-09-29 11:17 dedicatus545 阅读(164) 评论(0) 推荐(0) 编辑