在洛谷里线段树是普及 但是平衡树却是提高加,平衡树甚至在很多数据结构的教材里都有介绍 并且实现,甚至工作面试竟都需要问平衡树!比如BST和AVL,因为原先的二叉搜索树在数据有序情况下会退化成链,所以说需要一种减少树高度的手段,才有了后面各种莫名其妙的树,当然红黑树还是最离谱的存在。平衡树的思想确实比线段树要复杂些,代码也要多很多,虽然一下从普及到提高+/省选也是比较神奇。值得注意的是,可持久化线段树模板也是提高+难度的,说明主席树的思想和难度应当和平衡树是同阶的,毕竟都是树hh。还有一个有趣的点,平衡树的种类很多,常见的写进教科书里的是BST和AVL,然而代码量太大,比赛里难以实现,一般用的是Treap和Splay。但我认为,在思维上,这些树的难度是同阶的,,,红黑树要高一层。另一方面,系统直接提供了基于红黑树的set和map,很多时候也不需要手写平衡树,但要知道他的原理是什么,并且能够独立实现(毕竟找工作都要问的知识已经属于烂大街的了吧hh),先写到这里,下次再更。
线段树模板之所以被定义为普及……只是单纯的思维难度低,平衡树要达到平衡,需要旋转,也就是教科书里的左旋右旋,第一次学需要演算好一会儿才能掌握。
3.9
洛谷主要按照思维难度进行评级,ACW主要按照代码难度进行评级,以至于模板题都被归类成[简单],而实现复杂点的就会被归类成[普通],比如基础课里的数位dp,实际上他并不是很难对吧hh,至少和提高课的是同阶的罢。
#2021.2.26 关于算法的胡思乱想
最新推荐文章于 2023-05-27 23:21:52 发布