http://uoj.ac/problem/217 题解: 考虑查询一个区间,遍历到的叶子一定是右儿子、右儿子、……、左儿子、左儿子。 反过来,值域连续的这样的若干节点也唯一对应一个区间。 所以右儿子给值域相邻的右、左儿子连边,左儿子只给左儿子连边,问题相当于最小路径覆盖(每个点可以被覆盖无限次,有 ...
分类:
其他好文 时间:
2020-07-29 21:36:48
阅读次数:
66
线段树or优先队列+dp E. Lunar New Year and Red Envelopes 题目大意: 题解: \(dp[i][j]\) 表示到时间 \(i\) 打扰了 \(j\) 次获得的最少的硬币数量 因为如果这个时间点有东西拿,那么必须按照策略拿,先预处理每一个时间点如果要拿的东西,然后 ...
分类:
其他好文 时间:
2020-07-29 14:52:00
阅读次数:
69
LINK:Druzyny 这题研究了一下午 终于搞懂了. $n^2$的dp很容易得到. 考虑优化.又有大于的限制又有小于的限制这个非常难处理. 不过可以得到在限制人数上界的情况下能转移到的最远端点 且这个数组是单调的. 而下界是随意的. 这个可以利用单调队列做 也可以暴力线段树. 然后考虑怎么优化 ...
分类:
其他好文 时间:
2020-07-28 22:54:01
阅读次数:
115
####一句话:树状数组NB QWQ日常操作:一些乱七八糟的话 老实说,之前没有学到树状数组的时候,手边只有线段树这个工具。感觉还是蛮好用的?就一直没有去学。后来一个偶然的机会,我做到了一道题,又偶然的看了这道题的树状数组的解法,从此走上了不归路。(啊这...) 其实真的去说,开始没有接触到树状数组 ...
分类:
编程语言 时间:
2020-07-28 22:48:47
阅读次数:
79
1.可持久化线段树 又称主席树,因为发明这一算法的人的名字缩写为HJT。 主席树可以储存各个历史状态,如果用普通线段树,每个状态都是 4n 的,内存和时间开销极大,而主席树通过动态开点,先继承上一状态的左右儿子节点指针,再进行修改,每次修改的时间和空间都可以优化到 \(\log n\) 级别。 通过 ...
分类:
其他好文 时间:
2020-07-28 22:48:06
阅读次数:
88
题目链接 Solution CF813F Bipartite Checking 题目大意:给定一个有$n$个点,没有边的无向图。每次操作添加一条边,如果该边已存在则删去这条边。每次操作之后回答无向图是否为二分图 扩展域 & 可撤销并查集、线段树分治 分析:首先如果只有加入操作,我们可以通过扩展域并查 ...
分类:
其他好文 时间:
2020-07-28 22:44:02
阅读次数:
90
概念 线段树是一棵二叉树,线段是上每个结点对应的是序列的一段区间。如图(以下图片为引用) 容易发现,根节点对应的是整个区间[0,n-1].若一个结点对应的区间为[l,r],当l=r时,它是一个叶结点,没有左右儿子;否则他一定有两个儿子,令mid=(l+r)/2,则左儿子对应的区间为[l,mid],右 ...
分类:
其他好文 时间:
2020-07-28 16:49:56
阅读次数:
55
###思路 线段树1是一道线段树的经典模板题,所涉及的线段树基础知识也比较全面,作为线段树初学者(比如我)的练手题就非常合适。这道题想让我们完成的是对一个序列的区间修改和区间查询。关于这两个操作, 我们要引入一个新的东西——lazytag。 关于线段树的一些基础写法在这里不再多赘述,我主要来讲一下有 ...
分类:
其他好文 时间:
2020-07-26 23:17:05
阅读次数:
81
###思路 这道题虽然和线段树1同是线段树模板题,但是这道题的难度我个人感觉是比1提高了,主要就是在有关lazytag的处理和运算方面更加复杂。 这道题的有两种修改操作,一种是区间加,一种是区间乘。这就会导致我们使用一个lazytag无法解决所有的问题,所以我们就要维护两个lazytag,一个是加法 ...
分类:
其他好文 时间:
2020-07-26 23:14:16
阅读次数:
68
题目链接: P2633 Count on a tree solution: LCA好题.询问第k大,不难想到主席树和前缀和思想,对于每个点$x$,我们可以用主席树维护root到$x$上的序列,然后查询$x,y$路径上的第$k$小只需要用前缀和维护权值线段树,用$x+y-lca(x,y)-f[lca( ...
分类:
其他好文 时间:
2020-07-26 15:45:20
阅读次数:
73