20170703总结
今天开始就是数据结构了。上午先快速地复习了栈、队列、链表、堆等基础数据结构。在此之中,学长提到了dancing links和左偏树。前者是链表实现暴力,能在暴搜的时候作很大优化,后者是支持合并的堆,在某些题有用。接下来复习了线段树和树状数组。做了几道较难的题,见识一下这种数据结构的各种灵活变化。其中一道叫“图腾”的题让我受益匪浅。线段树和树状数组作为优化的时候经常出现,而二位的线段树和树状数组则不常用,除了模板题就没什么应用了。写了几道模板题练手,现在把线段树写熟了,可以考虑开始压代码,毕竟原理什么的都很清楚,压代码也不会到调不出来的地步。
下午做vjudge的题。其中一道是树链剖分的题,以前没学过,今天花了两个小时学写树剖。(CSDN某神犇对把树链映射到线段树上的讲解太过省略,想了半天才想清楚)因为是两个部分,因而代码量适中偏大,调了很久才搞对。得多写写树剖的题,熟悉模板,这样就会越写越熟。线段树的变形很多,需要多加练习。