随笔分类 -  数据结构 RMQ-ST表

摘要:【题目】2017"百度之星"程序设计大赛 - 初赛(A) 【题意】给定n个点的带边权树,m条编号1~m的路径,Q次询问编号区间[L,R]所有链的交集的长度。n<=500000。 【算法】线段树+RMQ-LCA+树链的交 【题解】树链的交:记一条链为(a1,b1),LCA为c1。另一条链为(a2,b2 阅读全文
posted @ 2018-03-14 11:45 ONION_CYC 阅读(469) 评论(0) 推荐(0)
摘要:【题目】D. Animals and Puzzle 【题意】给定n*m的01矩阵,Q次询问某个子矩阵内的最大正方形全1子矩阵边长。n,m<=1000,Q<=10^6。 【算法】动态规划DP+二维ST表 【题解】设f[i][j]为以(i,j)为右下角的最大正方形全1子矩阵。 f[i][j]=min{ 阅读全文
posted @ 2018-01-17 21:56 ONION_CYC 阅读(337) 评论(0) 推荐(0)
摘要:【题意】给定n个点的树,m次求[a,b]和[c,d]中各选出一个点的最大距离。abcd是标号区间,n,m<=10^5 【算法】LCA+树的直径理论+线段树 【题解】 树的直径性质:距离树上任意点最远的点一定是直径的一端。此结论在点集中依然试用。 那么根据性质,容易得到答案路径的两端一定是[a,b]直 阅读全文
posted @ 2017-10-11 17:04 ONION_CYC 阅读(578) 评论(0) 推荐(2)
摘要:【题意】给定长度为n的整数序列,求长度为[L,R]的前k大区间和的和。n,k<=500000。 【算法】堆+贪心+RMQ 【题解】考虑暴力是取所有长度为[L,R]的子串的前k大求和,复杂度O(n^2)。 发现左端点相同的区间[l,r]中,最大的区间和就是最大的sum[r](sum是前缀和数组)。 然 阅读全文
posted @ 2017-08-04 12:01 ONION_CYC 阅读(208) 评论(0) 推荐(0)
摘要:【平衡树】★平衡树 by onion_cyc 【莫队算法】 问题:给定长度为n的序列和m个区间询问,支持快速增减相邻元素维护区间信息。 将询问按左端点分块,块大小为$Q=\frac{n}{\sqrt m}$,块内按右端点排序。 然后依次回答询问,需要O(1)从(l,r)转移到(l,r+1),(l,r 阅读全文
posted @ 2017-03-25 17:10 ONION_CYC 阅读(849) 评论(0) 推荐(0)
摘要:【算法】 【算法】网络流 【算法】树 【算法】数学 ————【专题】生成树计数(矩阵树定理) ————【专题】计数问题(排列组合,容斥原理,卡特兰数) ————【算法专题】卡特兰数(计数数列) ————【专题】数论 ————【专题】概率和期望 【算法】动态规划 【算法】数据结构 ————【专题】平衡 阅读全文
posted @ 2016-08-10 21:08 ONION_CYC 阅读(2144) 评论(0) 推荐(6)