摘要: 线段树合并 应用范围:将子树的信息合并给父亲节点,并且权值线段树的下标值域和节点数相近。 CF600E Lomsat gelral "题目链接" 题意:一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和。 $1 include using namespac 阅读全文
posted @ 2019-11-12 17:03 Akaina 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题意: 有一个长度为$n$的序列,每个数的值代表一种颜色,有$m$次询问,每次询问求$[L,R]$中的颜色数。、 "题目链接" 解法: 将询问离线处理,按右区间排序,每次右区间扩大,就更新新加入的点,如果该点的颜色之前出现过,就把之前的那个点删掉,然后对每个线段树来说,进行区间查询即可,通过分析可知 阅读全文
posted @ 2019-11-12 08:27 Akaina 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题意:有$n$个点,$m$条边,设$D[i]$位第$i$号房间与第$1$号房间的最短路径长度,$S[i]$位实际生成树中第$i$号房间与第$1$号房间的路径长度,要求对于所有整数$i$,都有$S[i] = D[i]$成立,求生成树的方案数。 "题目链接" 解法:先用$Dijkstra$求出$1$号房 阅读全文
posted @ 2019-11-12 08:20 Akaina 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 对于一个无向图或有向图求解一个边权值最小的包括三个点的环。 Sightseeing trip "题目链接" 题意:求解一个无向图的最小环 解法:由于是无向图,所以选择使用$floyd$,然后利用$floyd$的$dp$特性,然后就可以轻松求解了。 对于有向图,可直接枚举起点,用堆优化$dijkstr 阅读全文
posted @ 2019-11-12 07:55 Akaina 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 一种可持续化的数据结构 可用于计算区间第$k$大 "主席树详解" [模板]可持久化线段树1(主席树) "题目链接" cpp include include include using namespace std; define maxn 1000100 int n, q; int cnt = 0; 阅读全文
posted @ 2019-11-12 07:28 Akaina 阅读(124) 评论(0) 推荐(0) 编辑