摘要: 题意 给出一个树,一个消防站能够覆盖与他距离小于2的点。 求覆盖整个树需要多少个消防站。 分析 有贪心思路和动规思路,这篇题解使用动规。 所以按照树形DP的常规套路,我们把一棵子树的状态作为一个划分状态的标准。但是一个子树可能还可以向外覆盖点,也有可能有几个点没覆盖。 由于覆盖半径是2,对于一棵子树 阅读全文
posted @ 2019-08-18 13:30 _wkjzyc 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题意 给定2个等长序列a、b,要求通过交换使 $$\sum_{i=1}^{n}(a_i b_i)^2$$ 最小。 分析 看着这个式子,我突然想到了方差。很明显,方差反应数据的波动程度,所以让数据集中就可以使方差变小了。而对应到这个公式,大方向就是让这两个数据尽可能接近。很容易想到分别排序,$a_i, 阅读全文
posted @ 2019-08-11 14:50 _wkjzyc 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 题意 序列单点修改,区间询问最大连续子段和。 最大子段和难以更新,不过这里的单点修改降低了难度,不用维护标记了。现在要做的就是通过维护数个数据支持最大子段和的查询。 考虑最大子段和是连续子段,如果在这个子段中砍一刀,它仍然是两段: 而反过来,知道了右子段中紧靠左边的最大子段和,左子段中紧靠右边的最大 阅读全文
posted @ 2019-08-04 00:35 _wkjzyc 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题意 维护一段序列,支持区间乘,区间加,区间求和。 注意到操作有两种,则维护两个$lazytag$,分别对应乘和加。 区间加 与模板1相同。 区间乘 除了更新乘标记,将要加上的部分也要受乘法影响。所以要把两个标记都乘一次。 标记下传 首先乘标记可以直接下传。 而子节点的加标记还没有做乘法,而当前节点 阅读全文
posted @ 2019-08-04 00:17 _wkjzyc 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 看题面可以目测得出本题要求对01区间进行区间修改和查询。 查询区间和,就直接维护区间和。在修改时,就用总灯数(长度)减去当前开着的灯数(当前区间和)作为新的答案。 考虑修改两次相当于没修改,所以$lazytag$就累计操作数,如果是偶数则不用更新呢,奇数反之。 其余部分与线段树模板基本相同。 cpp 阅读全文
posted @ 2019-08-04 00:03 _wkjzyc 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 一、引入 1.我想单点查询序列的值,怎么办? 当然是来一个数组啦! 2.我想单点查询序列的值,还想单点修改,怎么办? 还是数组! 3.我想区间求和(后文称为查询),怎么办? 维护一个前缀和,$sum[i]=\sum_{j=1}^ia[i]$就可以$O(1)$查询。 4.我想区间求和,还想单点修改,怎 阅读全文
posted @ 2019-07-21 15:04 _wkjzyc 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 思路 考虑答案的运输路径。发现:能走限重大的就走。 所以要尽量把限重小的边删掉,只要图仍然联通就行。问题就转变成用最小值最大的边联通这个图。这就是最大生成树,可以用$kruskal$求出。 之后每次运输要使最小限重最大。但是发现有些边必须要走,而剩下的路径越短越好。$LCA$即可。由于图不一定联通, 阅读全文
posted @ 2019-06-21 16:41 _wkjzyc 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 倍增求$LCA$ 倍增基础 从字面意思理解,倍增就是“成倍增长”。 一般地,此处的增长并非线性地翻倍,而是在预处理时处理长度为$2^n(n\in \mathbb{N}^+)$的区间值。在这些预处理结果的基础上,我们可以进一步求出任意长度区间的答案。 比如区间最值问题$(RMQ)$就可以使用倍增解决。 阅读全文
posted @ 2019-06-16 22:10 _wkjzyc 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 分析题意,可以发现:按屏幕的过程类似于“取”与“不取”,柱子则是一些“限制条件”和“范围”。 思路 首先明确: 1、一秒可以无限点上升键(完全背包),并且一旦上升就不会下降Y。 ​ 一秒只能下降一次,不用点(01背包)。 2、碰到地面会死(处理下降时),碰到天花板不会死(处理上升时) 设$f[i][ 阅读全文
posted @ 2019-06-06 14:58 _wkjzyc 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 首先题意很明显,所谓“图”其实是一棵树。但这个性质意义在于给$dalao$一些秀树形结构的机会,顺便说明图很稀疏,而并不会引导解题。 如果从图的角度看,很明显就是枚举“中间点”,再枚举与之相连的两个点。复杂度$O(\sum_{i\in V} e_i\,^2)$即度数的平方和。T三个点。 再优化每次求 阅读全文
posted @ 2019-05-29 21:22 _wkjzyc 阅读(78) 评论(0) 推荐(0) 编辑