【周总结】2017-7-24~2017-7-30

这个礼拜集训貌似学了挺多东西的:

  • 图论

  • 流流流

  • 计算几何(只是随便水水)

  • 字符串(基本没怎么练)


图论

  • 拓扑排序,貌似挺水的,然而题目都是和一些奇怪的东西结合,没怎么做;
  • 最短路:貌似学会了堆优化的Dijkstra,然而还是喜欢SPFA(似乎比较慢);然后还写了几道拆点(分层图)最短路,感觉有点像DP;
  • 生成树:生成树貌似看了挺多的(没写几道),有部分要和二分之类的联系起来,比如最优比率生成树,顺带提高了枚举答案的姿势;貌似部分图也可以转化为生成树。

网络流

  • 最大流学了Dinic,貌似很快啊(尤其二分图);
  • AC了一道特种的最小割(平面图最大流转最短路);
  • 学习了最大流最小割这套理论,写了一堆得最小割建图;
  • 费用流写了道一年没写的EK;
  • 志愿者招募(NOI2008) 学了一种奇特的构图,有下限无上限的最小费用最大流,就是先用目标挖坑,然后用可选条件填坑,建完图后跑最小费用最大流,然而交了好几发一直WA(直到现在也没AC,惨啊!)。

计算几何

  • 增长了数学姿势(初中生惨案),各种向量、点乘、叉乘;
  • 判断直线相交(向量积);
  • 判断向量顺逆时针(向量积);
  • Graham求凸包,就是先把点极角排序,然后用向量积判断顺逆时针(即角度是否超过180°),然后用一个栈维护。

字符串

  • hash,注意生日攻击,讲道理是很实用的工具;
  • KMP,复习了一下原理;
  • AC自动机,乱七八糟的,没怎么懂,似乎是trie+KMP;
  • 后缀数组,貌似还好理解,就是利用都是后缀的性质,利用倍增,用一组长度为n的子串的rank来维护出长度为2n的子串的rank,慢慢合并;
  • 还有一堆自动机等待学习。。。

没了。。。。。。