首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
链剖分专题
树剖树剖 洛谷 P3384 【模板】轻重链剖分 (我爱树剖)
写了半天的树剖,终于调出来了,起始当你掌握了tarjan(时间戳和dfs序)和线段树之后,理解树剖还是不难的,就是实现起来挺麻烦的。树剖可以nlogn的解决树上LCA(动态的的也可以),它可以loglogn(利用线段树)处理出树上两个节点路径上的修改。 第一次操作实现子树的大小和重儿子是谁,然后第二次dfs求出对应下标和对应的根节点,顺便记录线段树的初始值。 void df
阅读更多...
【题解】「HAOI2015」树上操作(述链剖分)
题面 【题目描述】 有一棵点数为 N N N 的树,以点 1 1 1为根,且树点有边权。然后有 M M M个操作,分为三种: 操作 1 1 1 :把某个节点 x x x 的点权增加 a a a 。 操作 2 2 2 :把某个节点 x x x 为根的子树中所有点的点权都增加 a a a 。 操作 3 3 3 :询问某个节点 x x x 到根的路径中所有点的点权和。 【输入】 第一
阅读更多...
轻重链剖分+启发式合并专题
Codeforces-741D(Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths) 一棵根为1 的树,每条边上有一个字符(a-v共22种)。 一条简单路径被称为Dokhtar-kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串。 求每个子树中最长的Dokhtar-kosh路径的长度。给你n个点构成的一棵树,树里面的每一
阅读更多...