随笔分类 - 数据结构 分块
摘要:【题目】D. Huffman Coding on Segment 【题意】给定n个数字,m次询问区间[l,r]的数字的哈夫曼编码总长。1<=n,m,ai<=10^5。 【算法】哈夫曼树+莫队+分块 【哈夫曼树】哈夫曼树又称最优构造树,n个数字的哈夫曼树是含有n个给定权值叶子的点权路径和最小的二叉树。
阅读全文
摘要:【题意】给定n个节点的树,每个节点有一个数字ai,m次操作:修改一个节点的数字,或询问一条树链的数字集合的mex值。n,m<=5*10^4,0<=ai<=10^9。 【算法】树分块+带修改莫队算法 【题解】和【BZOJ】3052: [wc2013]糖果公园 树分块+待修改莫队算法差不多。 区别在于如
阅读全文
摘要:【题意】给定n个数字,m次操作,每次询问区间不同数字的个数,或修改某个位置的数字。n,m<=10^4,ai<=10^6。 【算法】带修改的莫队算法 【题解】对于询问(x,y,t),其中t是前面的修改次数,所有修改记录改前和改后。 首先按belong[x],然后按belong[y],最后按t排序。(块
阅读全文
摘要:【题目】#58. 【WC2013】糖果公园 【题意】给定n个点的树,m种糖果,每个点有糖果ci。给定n个数wi和m个数vi,第i颗糖果第j次品尝的价值是v(i)*w(j)。q次询问一条链上每个点价值的和或修改一个点的糖果ci。n,m,q<=10^5。 【算法】树分块+带修改莫队算法 【题解】参考:W
阅读全文
摘要:【题意】给定n个点的树,要求划分成若干大小为[B,3B]的块,满足一个块加上一个核心点后连通,求方案。n<=1000。 【算法】树分块 【题解】参考:PoPoQQQ 讲得很详细了,就不必听我口胡了。。。 树分块算法的起源?用这道题的树分块算法可以实现将一棵树划分成若干[B,3B]的块。 DFS过程中
阅读全文
摘要:【题意】给定长度为n的排列,m次询问区间[L,R]的最长连续值域。n<=50000。 【算法】莫队算法 【题解】考虑莫队维护增加一个数的信息:设up[x]表示数值x往上延伸的最大长度,down[x]表示数值x往下延伸的最大长度。 增加一个数x时,up[x]=up[x+1]+1,down[x]=dow
阅读全文
摘要:【算法】 【算法】网络流 【算法】树 【算法】数学 ————【专题】生成树计数(矩阵树定理) ————【专题】计数问题(排列组合,容斥原理,卡特兰数) ————【算法专题】卡特兰数(计数数列) ————【专题】数论 ————【专题】概率和期望 【算法】动态规划 【算法】数据结构 ————【专题】平衡
阅读全文