讲课人更换成dms。
真的今天快把我们逼疯了。。
今天主攻数据结构,
基本上看完我博客能理解个大概把,
1.LCA 安利之前个人博客链接。之前自己学过QWQ。
2.st表。同上。
3.字符串哈希。同上。
(貌似我好像都学过的样子。不过dms讲的是真的好,声情并茂)
4,并查集。同上。
5,树状数组,同上。
6,线段树,同上。
树状数组主要出现形式:逆序对,二位偏序,多个树状数组。
然后讲了一下午树状数组,线段树。
晚上讲splay。。。
到了晚上,然而并没有听懂什么,,只是看着dms打代码发呆,,。
SPLAY:
总结:
连splay都没听懂,我真的弱。。。
然后是疯狂刷题:
是不是有点(hen)恶心。。
。。。
思路:对于两个节点在无根树上的最短距离,只要求一个LCA就行了。
但是对于三个,你需要分别两两求LCA,一定有两个LCA相同,那么我们只要取剩下那一个不相同的就行了,自己画个图,对应一下就知道了。
题目链接。
考虑怎么优化复杂度。
对于这道题,当然是线性递推来的爽快。
我们定义大小根堆分别一个,开始a[1]为小根堆的堆顶,然后插入两个数,和小根堆堆顶比较,如果比它大就插入小根堆,比它小就插入大根堆,然后如果两个新来的元素都被插入同一个堆,就从元素多的,然后输出小根堆堆顶就可以了。
安利自己合并果子博客;