五月份总结

五月份过去了。

大概是 11 号省选之后,我就回 17 班上文化课了。感觉还是挺不错的,毕竟学文化课不会有那种让你看一天题解都不会的题,还是比较友好的。

落下的课有点多,再加上上次月考本以为无处可退的成绩又退步了,这个月压力比较大。好在我两周之内就把所有落下的内容补了回来,作业和辅导书也都全部做完了,之后的第三周就比较颓废,主要是没题可做,之后就赶紧到网上买了一堆高考必刷题来做。感觉日子还是比较充实的,学文化课也可以跟班上的同学一起打闹,也不至于绷得太紧张。

还有一个月期末考试,我算了下周练,都在平均分之上吧(目前也就只能补到这个水平了)。考虑期末考试前把高一所有的东西好好梳理一遍,题也多做一点。话说图书馆真是个好地方,在图书馆写完了很多题。

大概规划了一下六月份,我突然发现一个月也是可以完成很多事情的,当然也包括补文化课这个玩意。现在就是要把松散的东西给搞扎实点。

各位期末考试顺利,也祝 OIer/AFOer 们这个月一切顺利。

线性基学习笔记

简述

线性基应该算是线性代数范畴内的东西。在 OI 中,线性基被用来解决位运算或者是向量表示的问题。

建议读者学习了高中数学中的向量之后再来阅读本文,相信这样会帮助理解线性基。

Continue reading →

P3313:「SDOI2014」旅行题解

解法

可以考虑每一个颜色都开一颗线段树来进行维护,但是这样会爆炸,所以我们用动态开点的线段树就可以过了。把不同颜色的节点分开进行维护,然后按照树链剖分套路即可。

Continue reading →

P4899:「IOI2018」 werewolf 狼人题解

解法

这道题是 Kruskal 重构树的裸题。我们先来考虑从\(s\)出发的人形状态,我们要找到一个点点权小于\(L\)的点,就相当于在 Kruskal 重构树上倍增找到最后一个小于\(L\)的点。我们把符合人形规律的 Krukskal 树记为 Tl,其中构造它的方式就是把原来图上所有边的边权赋值为端点的最大值,然后按最小生成树的方式去构造重构树;符合狼形规律的 Kruskal 重构树被记为 Tu,其中构造它的方式就是将端点编号最小值赋为边权,然后按最大生成树的方式构造。之后,我们再到主席树中求交集即可,如果有交集那么查询结果为一个不为零的数,输出\(1\)即可;没有交集那么查询结果即为\(0\),输出\(0\)。

Continue reading →

主席树总结

简述

主席树是一个很有意思的数据结构,其全称其实是「可持久化线段树」,至于为什么叫「主席树」是因为:

由于发明者黄嘉泰姓名的缩写与前中共中央总书记、国家主席胡锦涛(H.J.T.)相同,因此这种数据结构也可被称为总书记树或主席树。

From Wikipedia.org

Continue reading →

Kruskal 重构树

简述

Kruskal 重构树是图的一种生成树,主要解决一类路径边权限制问题。Kruskal 重构树有按深度单调的性质,所以很容易就可以解决边权的取值限制。

建法

Kruskal 重构树的建造方法和 Kruskal 算法建最小生成树的方法非常类似,但是结构有所不同:Kruskal 重构树将边权变成点权,点权依深度变小。我们假设有一张这样的图:

Continue reading →