清北学堂提高组突破营游记day3

 

讲课人更换成dms。

真的今天快把我们逼疯了。。

今天主攻数据结构

基本上看完我博客能理解个大概把,

1.LCA 安利之前个人博客链接。之前自己学过QWQ。

2.st表。同上。

3.字符串哈希。同上。

(貌似我好像都学过的样子。不过dms讲的是真的好,声情并茂

4,并查集同上

5,树状数组,同上。

6,线段树,同上。

树状数组主要出现形式:逆序对,二位偏序,多个树状数组。

然后讲了一下午树状数组,线段树。

晚上讲splay。。。

到了晚上,然而并没有听懂什么,,只是看着dms打代码发呆,,。

 

    

 

SPLAY:

 

总结:

 

连splay都没听懂,我真的弱。。。

然后是疯狂刷题:

是不是有点(hen)恶心。。

。。。

 思路:对于两个节点在无根树上的最短距离,只要求一个LCA就行了。

但是对于三个,你需要分别两两求LCA,一定有两个LCA相同,那么我们只要取剩下那一个不相同的就行了,自己画个图,对应一下就知道了。

题目链接

考虑怎么优化复杂度。

对于这道题,当然是线性递推来的爽快。

我们定义大小根堆分别一个,开始a[1]为小根堆的堆顶,然后插入两个数,和小根堆堆顶比较,如果比它大就插入小根堆,比它小就插入大根堆,然后如果两个新来的元素都被插入同一个堆,就从元素多的,然后输出小根堆堆顶就可以了。

 

安利自己合并果子博客;

 

posted @ 2019-08-08 20:26  李白莘莘学子  阅读(138)  评论(0编辑  收藏  举报