20200706

今天是这暑假同学们在vj上做训练题的第一天。题目难度不大,一共6道题,其中A题和D题没有人AC。A题是个DP,类似于最长公共子序列,需要在二维状态上再加一维记录括号性质,总复杂度O(N3),这道题我写完才发现代码比想象中的要长,有一百多行。D题是个图论最短路题,每个点可以到达另外两个点,也就是说边数是O(N)级别的。求每个点到达奇偶性不同的点的最小步数。这是一个(伪)多源最短路转化成单源最短路的经典模型,我直接套了个迪杰斯特拉模板就AC了。现在一想,边权都是1,不用迪杰斯特拉,直接BFS就完事了。Dijkstra的复杂度是O(MlogN),BFS的复杂度是O(M)。

下面附上一道经典图论问题,我在具宗万的《算法问题实战策略》上做到过。
20200706_第1张图片20200706_第2张图片20200706_第3张图片

你可能感兴趣的:(20200706)