摘要:
http://poj.org/problem?id=1511POJ 1511 Invitation Cards大意:求有向图中从源点到每个节点的往返距离和分析: 1.根据题意建立两幅图,分别对应于正向图和反向图 2.分别对正向图和反向图求从源点即题中的1结点出发求単源最短路径, 3. 由2易得,正向图中求得的dis[i]为s到i的最短路,反向图中求得的dis[i]为i到s的最短路 那么s到i的往返距离即为两个dis相加 4.在求単源最短路时用SPFA,两次SPFA即可完成 重点注意:需要读入的数据较大,使用getint()函数可大大减少读数据时间 View Code 1 #include .. 阅读全文
摘要:
http://poj.org/problem?id=3259POJ 3259 Wormholes大意:给出由n个顶点组成的有向图所有边信息,判断该图中是否存在负回路分析: 由于不知道图中的负环路会包含哪些顶点,故自定义一源点s,对于每个顶点k,有一条s到k权值为0的有向边,此时便可初始化s到每个顶点的距离dis[k]为0,然后用Bellman-Ford计算从源点s到各点的単源最短路,若存在某条边有第n+1次松弛操作,则存在负环,否则没有负环重点注意:引出源点s的定义,并创建从s到每个点的单向边的目的是为更好地理解dis[i]的初值问题,当然,对于初值dis[]不一定要是0,也可以是其他任意数, 阅读全文