这两天学习了树链剖分和线段树结合起来的维护以及修改树上路径的问题。其实看明白了就是先树链剖分用两个dfs序将树上路径转化为线段树的区间,然后就还是线段树单点以及区间修改查询的那一套,这也算是一种类型的题木吧。树链剖分的作用就是将一棵树变成一个可处理的dfs序,对于树上操作一般都是由线段树和树状数组维护。
另外,还学习了dfs序和欧拉序的不同以及应用。用dfs序求出每个节点的入时间戳以及出时间戳,其用途可以通过dfs序判断v节点的时间区间是否在u节点的时间区间内。欧拉序,可以通过欧拉序求u和v的最近公共祖先问题。
这两天的问题是首先对最近学的知识点代码不太熟,勉强看着人家的代码弄懂意思,可我也不想把它只当做板子自己套进去,啊,好纠结。因为数据结构很多板子其实理解了大概思想以及知道哪里是核心应该靠题意来修改都是可以直接上板子的,但要自己完完全全敲出来代码就得要求自己对思想很了解,还得很熟,而我有点垃圾。还是先套着把题型以及应用先过一遍把。