线段树
WAautomaton
我好弱啊~
展开
-
CF 1368G Shifting Dominoes
题意有一个 n×mn \times mn×m 的网格上放满了 1×21 \times 21×2 的多米诺骨牌,你可以拿走某个多米诺骨牌,然后让剩下某个多米诺骨牌沿着它的长边移动一格(必须要有空位相邻才能移动),这样会让两个空格的位置产生变化。问最终可以产生多少种不同的两个空格位置。题解写了个做法死活过不了样例 3,看到有人写 SegBeats 还以为自己假了,检查了半天,结果是扫描线写挂了……首先冷静分析一下,把空格看成是独立的点,每次移动多米诺骨牌就相当于把空格沿着多米诺骨牌的长边移动两格。于是原创 2020-07-16 14:18:54 · 279 阅读 · 0 评论 -
HNOI2016网络(整体二分+树状数组)
题目链接题目大意给定一棵树,每次有三种事件。1.设定一条路径u→vu\rightarrow vu→v的权值为aaa。2.删除某条设定。3.询问所有存在的设定中,不经过xxx路径的权值最大值是多少。n≤105,m≤2×105n\le 10^5,m\le 2\times 10^5n≤105,m≤2×105。题解刚开始只想到一个O(nlog3n)O(nlog^3n)O(nlog3n)的树...原创 2019-02-22 20:41:12 · 277 阅读 · 0 评论 -
SDOI2017 树点涂色(LCT+线段树)
题目链接题目大意给定一棵每个点颜色不同的树,支持三种操作:1.把点x到根节点的路径上的所有的点染上一种没有用过的新颜色;2.求x到y有多少种颜色;3.求x的子树中的点使该点到根的不同颜色数最大。n,m≤105n,m\le 10^5n,m≤105题解如果我们能够动态维护某个点到根的不同颜色数,就做完了。考虑1操作实际上是LCT的access操作,于是我们可以用LCT来维护。acce...原创 2019-02-12 16:57:18 · 279 阅读 · 0 评论 -
SDOI2015 战略游戏(动态dp)
题目链接题目大意给定一个只有两行的网格图,动态修改边权,查询某两列之间的网格图最小生成树的权值和。n,m≤105n,m\le 10^5n,m≤105题解考虑如何用dp求出整个网格图的最小生成树。f[i][0/1]f[i][0/1]f[i][0/1]分别表示dp到第iii列,两行末尾同属一个连通块/分属两个连通块。那么显然可以转移:0到0,任意连接新加入的3条边其中两条。0到1,连接...原创 2019-02-12 17:42:03 · 157 阅读 · 0 评论 -
SDOI2014 向量集(凸包+线段树)
题目链接题目大意两个操作:1.在序列S中加入一个向量;2.求某个向量和S的区间[l,r][l,r][l,r]中向量的点积最大值。n,m≤105n,m\le 10^5n,m≤105题解考虑两个向量(a1,b1),(a2,b2)(a_1,b_1),(a_2,b_2)(a1,b1),(a2,b2),询问向量为(x,y)(x,y)(x,y)。不妨令a1≤a2a_1\le a_2a1...原创 2019-02-12 18:58:16 · 253 阅读 · 0 评论 -
SDOI2017 切树游戏(FWT+树链剖分+dp)
题目链接题目大意维护一棵树,支持:1.动态修改某个点权值;2.查询有多少个联通子树异或值为ppp。题解这题感觉比较套路,显然可以列出一个dp方程,发现这是FWT异或卷积的形式。具体的,记f[i]f[i]f[i]为iii的dp数组的FWT卷积,那么f[i]=b[val[i]]∗∏v∈son[i](f[v]+b[0])f[i]=b[val[i]]*\prod_{v\in son[i]} (...原创 2019-02-12 19:18:41 · 393 阅读 · 0 评论 -
NOI2018情报中心(虚树+线段树合并)
题目链接题目大意给定一棵 nnn 个节点的树,以及 mmm 条链,每条链有费用,每条边有收益。问选出两条至少一条边重合的链,使链并上的边权和 −-− 两条链的总费用最大。n≤106,m≤2×106n \le 10^6,m\le 2 \times 10^6n≤106,m≤2×106。题解不妨进行分类讨论。首先,如果两条链的 LCA 不是同一个点,那么形成的图应该长这样:(盗个图)那么它...原创 2019-03-30 11:04:26 · 683 阅读 · 0 评论