摘要:
https://www.luogu.org/problemnew/show/P3359 因为 a ^ b ^ b = a,所以我们预处理 1 到所有点的距离,将删边的操作反过来变成加边,对于每一个联通块用 map 维护 1 到联通块中的点异或值为 x 的数的个数,乘法原理统计答案,加边时启发式合并即 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P2781 简化版题意:有 n 个数,初始值为 0,进行 m 次操作,每次操作支持将 [l, r] 加 v 和查询 [l, r] 中所有的数的和 n using namespace std; typedef unsigned 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P3415 考虑二分结界层数,将 n 个点按 x 大小依次加入答案,一行一行的做,用树状数组维护当前这一行中[0, x 1] 包含祭坛大于 mid 的且 [x + 1, n] 中包含的祭坛也大于 mid 的坐标,再计算出这一 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P2664 考虑对于每种颜色包含的点和这些点的子节点建出虚树,发现只要将一个联通块中的东西 Dp + 差分一下就行了 当然要考虑哪些东西要被加进去 如果把不是一个颜色的联通块放在一起加,里面就要算上 n 联通块大小的贡献(画 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P4396 简单的莫队+树状数组,但博主被卡常了,不保证代码在任何时候都能AC cpp include using namespace std; template inline void read(T &f) { f = 0 阅读全文
摘要:
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 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P2982 这题你写个树剖当然可以做,但是我们还有一种更简单的方法,使用 dfs 序 + 树状数组即可 考虑一只牛到了自己的地方后会对哪些牛产生贡献 当然是它的子树中的牛啊 所以维护一下每个点的 size 和 dfs 序,树 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P2495 Dp 方程很显然 设 Dp[u] 表示——使 u 不与其子树中任意一个关键点联通的最小代价 设 w[a, b] 表示 a 与 b 之间的边的权值。 若 son[i] 不是关键点,Dp[u] = Dp[u] + m 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P4113 简化版题意:求出区间中有几个数出现了两次以上 题目要求出现两次以上,而且出现 10 次对答案只产生 1 的贡献,可以考虑对数字做一些变化 原数组:1 2 3 2 3 3 1 权值数组:0 0 0 1 1 0 1 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P2418 暴力 DP 做这题只有 30 分 考虑用线段树优化这个 DP 先处理一下整个房间都膜拜一个人的情况,然后将 1 的当成 1, 2 当成 1,处理前缀和,可以发现对于前缀和为 x 的情况,只能从前缀和为 [x k, 阅读全文