看来人的精力确实有限,昨天晚上,做了一点题,早上差点起不来。

   今天由于感觉事情很多,就没有看一下昨晚的题(主要是昨晚的题错了,等改好再看)。今天和同学讨论了一下区间dp的一个题,求一个字符串的子回文串数量,经过讨论,感觉有了更深的了解。看来一个算法经过探讨后才能记得更深,虽然花费了不少时间,但一切都是值得的。

   今天大部分时间还是看了图论的割点,桥,连通性,拓扑排序,欧拉回路的问题,当然,首先时各个知识点的定义,是要知道的,连通性,拓扑排序,欧拉回路,在离散课上都学习过,定义大体看一下就知道,割点,桥,貌似课上没怎么讲,着重看了下,定义很好理解,但是代码写起来可能开始不好理解,需要把很多基础知识掌握好,比如,树边,回边的知识。

   至于代码实现,割点,桥的代码差不多,也都是比较容易实现的。我是手写试了试,感觉还可以,后来又看了连通性的代码,有无向图的双连通性,有向图的强连通性,也尝试着做了下题,发现有些题还无法直接写出来,需要看模板。拓扑排序的代码之前看过,只是知道模板代码,欧拉回路目前还没有看代码,估计应该会基本知识就可以了,但是需要很多判断条件。

无向图存在欧拉路的条件

   1如果图连通,且所有的点都是偶数度,则有欧拉回路。
   2如果图连通,且恰有两点是奇数度,则有欧拉路。且欧拉路的起止点为这两个奇数度点。
   3对重边、自环的情况仍适用。

有向图存在欧拉路的条件

  1如果图连通,且每个点的入度等于出度,则存在欧拉回路。
  2如果图连通,且恰有一点u的出度比入度大1,另有一点v的出度比入度小1,其余的出度等于出度,则存在欧拉路,起点为u,    终点为v。
  3对重边、自环的情况仍适用。