摘要: https://www.luogu.org/problemnew/show/P2781 简化版题意:有 n 个数,初始值为 0,进行 m 次操作,每次操作支持将 [l, r] 加 v 和查询 [l, r] 中所有的数的和 n using namespace std; typedef unsigned 阅读全文
posted @ 2018-09-18 20:42 LJC00118 阅读(166) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problemnew/show/P3415 考虑二分结界层数,将 n 个点按 x 大小依次加入答案,一行一行的做,用树状数组维护当前这一行中[0, x 1] 包含祭坛大于 mid 的且 [x + 1, n] 中包含的祭坛也大于 mid 的坐标,再计算出这一 阅读全文
posted @ 2018-09-16 18:23 LJC00118 阅读(121) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problemnew/show/P2664 考虑对于每种颜色包含的点和这些点的子节点建出虚树,发现只要将一个联通块中的东西 Dp + 差分一下就行了 当然要考虑哪些东西要被加进去 如果把不是一个颜色的联通块放在一起加,里面就要算上 n 联通块大小的贡献(画 阅读全文
posted @ 2018-09-12 17:39 LJC00118 阅读(179) 评论(1) 推荐(0) 编辑
摘要: https://www.luogu.org/problemnew/show/P4396 简单的莫队+树状数组,但博主被卡常了,不保证代码在任何时候都能AC cpp include using namespace std; template inline void read(T &f) { f = 0 阅读全文
posted @ 2018-09-11 16:07 LJC00118 阅读(137) 评论(0) 推荐(1) 编辑
摘要: https://www.luogu.org/problemnew/show/P1401 二分答案网络流判断是否可行即可 cpp include using namespace std; template inline void read(T &f) { f = 0; T fu = 1; char c 阅读全文
posted @ 2018-09-11 14:54 LJC00118 阅读(139) 评论(0) 推荐(1) 编辑
摘要: https://www.luogu.org/problemnew/show/P2982 这题你写个树剖当然可以做,但是我们还有一种更简单的方法,使用 dfs 序 + 树状数组即可 考虑一只牛到了自己的地方后会对哪些牛产生贡献 当然是它的子树中的牛啊 所以维护一下每个点的 size 和 dfs 序,树 阅读全文
posted @ 2018-09-09 13:07 LJC00118 阅读(138) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problemnew/show/P2495 Dp 方程很显然 设 Dp[u] 表示——使 u 不与其子树中任意一个关键点联通的最小代价 设 w[a, b] 表示 a 与 b 之间的边的权值。 若 son[i] 不是关键点,Dp[u] = Dp[u] + m 阅读全文
posted @ 2018-09-09 08:52 LJC00118 阅读(120) 评论(0) 推荐(1) 编辑
摘要: https://www.luogu.org/problemnew/show/P4113 简化版题意:求出区间中有几个数出现了两次以上 题目要求出现两次以上,而且出现 10 次对答案只产生 1 的贡献,可以考虑对数字做一些变化 原数组:1 2 3 2 3 3 1 权值数组:0 0 0 1 1 0 1 阅读全文
posted @ 2018-09-08 23:13 LJC00118 阅读(127) 评论(0) 推荐(1) 编辑
摘要: https://www.luogu.org/problemnew/show/P2418 暴力 DP 做这题只有 30 分 考虑用线段树优化这个 DP 先处理一下整个房间都膜拜一个人的情况,然后将 1 的当成 1, 2 当成 1,处理前缀和,可以发现对于前缀和为 x 的情况,只能从前缀和为 [x k, 阅读全文
posted @ 2018-09-07 21:37 LJC00118 阅读(190) 评论(0) 推荐(1) 编辑
摘要: https://www.luogu.org/problemnew/show/P3302 看到查询第 k 小,而且是一颗树,可以联想到在树上的主席树,a 和 b 路径中第 k 小可以通过在 a, b, lca(a, b), fa[lca(a, b)] 四个节点对应的主席树上二分得到 实现主席树是很简单 阅读全文
posted @ 2018-09-06 11:25 LJC00118 阅读(483) 评论(1) 推荐(5) 编辑
/*
*/