Tsinghua 2018 DSA PA3简要题解

CST2018 3-1-1 Sum (15%)

简单的线段树,单点修改,区间求和。

很简单。

CST2018 3-1-2 Max (20%)

高级的线段树。

维护区间最大和,区间和,左边最大和,右边最大和。

单点修改的时候一路吧区间都改了就好了。

求子段最大值也就判断一下左右就好了。

略微复杂。

CST2018 3-2 Not Found (20%)

内存有点小,在考虑按层建立trie树?

不太会。

CST2018 3-3 Hacker (20%)

$18^5$其实并不大,直接预处理hash一下就好了。

冲突的话直接记录输出duplicate。

比较简单。

CST2018 3-4 kth (20%)

可以先通过3n次比较进行排序。

一个数组的话直接二分就好了。

要是两个数组可以丢堆里面。

三个不会【摊手

CST2018 3-5 Prefix (20%)

一道简单的KMP,就是考虑每个节点为结尾多出来多少重复的。

比较简单。

CST2018 3-6 Match (20%)

Treap的应用:

插入:基本操作。

删除:基本操作。

翻转:基本操作。

比较大小:用hash比较。

所以要记录两个值:以某个节点为根的顺序的hash和逆序的hash。

写起来比较麻烦。

CST2018 3-7 History (15%)

强制在线。

简单hash。

CST2018 3-8 Shortest (15%)

堆优化Dijkstra。

其实我觉得spfa加SLF还是能过。。。

猜你喜欢

转载自www.cnblogs.com/rausen/p/10166643.html
dsa