国际大学生程序设计竞赛例题解3

内容是图论,动态规划,以及综合题

心得:图论,中间的算法并不是非常的新,有许多的算法并没有讲到,所以大家要是自己看算法导论或者别人的程序实现来学习算法会更好

然后是从例题中得到的经验:

有一道很经典的题,就是双向边的改边问题,书中实际上出现了两次一模一样的这个问题,但是方法是完全不同的

一种是利用深度搜索树中的前序遍历,后序遍历,以及前序遍历中子树能达到的最小标号来区分前向边,后向边,交叉边,跳跃边两次搜索来实现

另一种就是基于强连通图的性质先找桥边,也就是双连通分支,而后仪的深搜确定方向

但是两种的思想都是一致的,先确定不能够改的双向边,然后再确定其他边的方向,第一种更加裸,直接,但是有点生涩难以理解,第二种有一些巧妙,需要体会

还有就是对于有一些网络流可以简化成为二分图, 需要注意。

而后就是有一些网络流后的残余网络的建图,需要体会。

然后就是树的同构问题,留下了一个问题就是最小表示法除了子孙的分支为什么我们不能直接用分支的大小直接表示呢,这样有时候我们还可以利用树的重心来降低时间复杂度

联通分量什么的还是只看到了比较裸的例题,有一些比较令人费解的直接暴力真是厉害,还有就是标号法求最短路是啥【感觉就是dijstra

接下来就是Dp啦,慢慢更新

你可能感兴趣的:(算法,动态规划,图论)