摘要: 传送门 "Luogu" 解题思路 ~~离散化没什么好说~~ 有一种暴力的想法就是枚举每一个坟墓,用一些数据结构维护一下这个店向左,向右,向上,向下的常青树的个数,然后用组合数统计方案。 但是网格图边长就有 $1e9$ 级别,于是这种方法就萎了。 考虑从常青树下手。 我们可以发现在同一竖排中的两颗相邻 阅读全文
posted @ 2019-10-26 22:36 Sangber 阅读(152) 评论(0) 推荐(0)
摘要: 传送门 "Luogu" 解题思路 对于选出的区间,我们可以直接用线段树维护区间内单点被覆盖次数最大值。 那么解题重心便落在了选取方式上。 为了让最大值最小,考虑尺取,不能二分,降低效率而且不好写。 先将区间按长度从小到大排序,一个一个选入直到满足单点被覆盖 $m$ 次的要求,满足不了就直接 ,然后再 阅读全文
posted @ 2019-10-26 22:35 Sangber 阅读(172) 评论(0) 推荐(0)
摘要: 传送门 "Luogu" 解题思路 发现一个性质: 对于排列的任何一个循环位移,排列中的同一个数的前驱肯定是不变的。 而且,如果一个排列的循环位移是某一个区间的子序列,那么这个循环位移的结尾的 $n 1$ 级前驱一定要位于这个区间内。 到这里我们就可以倍增维护 $2^k$ 级祖先,然后再搞一个数据结构 阅读全文
posted @ 2019-10-26 22:34 Sangber 阅读(258) 评论(0) 推荐(0)
摘要: 传送门 "memset0好评" 解题思路 比较恶心的一道数据结构题 看一眼题面,马上想到离散化。 然后将一维排序,另一维用树状数组或者线段树维护。 ~~然后就没思路了~~ 发现一个性质: 不包含所有的颜色,当然要使得只有一种不被选的颜色。 那么我们可以对每一种颜色开一个 $\text{set}$ , 阅读全文
posted @ 2019-10-26 22:33 Sangber 阅读(175) 评论(0) 推荐(0)
摘要: 传送门 "Luogu" 解题思路 ~~带权并查集我不会啊~~ 考虑种类并查集(扩展域并查集的一种)。 开三倍空间,一倍维护本身,二倍维护猎物,三倍维护天敌,然后用并查集搞一搞就好了。 细节注意事项 + 咕咕咕 参考代码 cpp include using namespace std; const i 阅读全文
posted @ 2019-10-26 22:31 Sangber 阅读(200) 评论(0) 推荐(0)
摘要: 传送门 "Luogu" 解题思路 很容易想到用一个堆去维护,但是复杂度是 $O((n+m)\log(n+m))$ 的,显然过不了 $7e6$。 其实这题有一个性质: 先被切开的蚯蚓,得到的两条新蚯蚓,一定会比后被切开的蚯蚓长。 这个可以推一下表达式,我就不打了。 那么也就是说,我们需要维护三个队列, 阅读全文
posted @ 2019-10-26 22:30 Sangber 阅读(157) 评论(0) 推荐(0)
摘要: 传送门 "Luogu" 解题思路 很容易想到平衡树,然后还可以顺便维护一下连通性,但是如何合并两棵平衡树? 我们采用一种类似于启发式合并的思想,将根节点siz较小的那颗平衡树暴力的合并到另一颗上去。 那么复杂度呢? 由于一个点所在的平衡树在经过这样一次合并之后,根节点的siz至少乘2,所以每一次合并 阅读全文
posted @ 2019-10-26 22:29 Sangber 阅读(135) 评论(0) 推荐(0)
摘要: 传送门 "Luogu" 解题思路 树形背包。 设 $f[i][j][0/1]$ 表示在以 $i$ 为根的子树中选 $j$ 件商品的最少花费。 边界条件: $f[i][j][0] = \min\limits_{0\le k\le siz[son]}\left\{f[i][j k][0]+f[son][ 阅读全文
posted @ 2019-10-26 22:27 Sangber 阅读(177) 评论(0) 推荐(0)
摘要: 传送门 "Luogu" 解题思路 比较显然的一种做法: 我们把一个点的子树高度抠出来并排序记为 $L_i$,找到最大的 $i$ 使得 $L_{i 1}+L_i\le K$。 于是我们把前 $i$ 个对应的子树中的叶子合并为一个集合,之后的单独为一个集合,从非叶子跑一遍 $\text{DFS}$ 就可 阅读全文
posted @ 2019-10-26 22:25 Sangber 阅读(167) 评论(0) 推荐(0)
摘要: 传送门 "Luogu" 解题思路 注意到 $m n \le 20$ ,所以这其实是一个树上问题,非树边至多只有21条,那么我们就可以暴力地对每一个非树边所连接的点求一次单源最短路,然后每次询问时,先访问两点的树上距离,再尝试用非树边更新答案,取最小值输出即可。 细节注意事项 + 最短路不要写挂就好 阅读全文
posted @ 2019-10-26 22:24 Sangber 阅读(171) 评论(0) 推荐(0)