Floyd最短路算法属于多源最短路,可以求出图中任意两点的最短路径。如果图中存在负权但是不存在负环的话Floyd是可以解决最短路问题的。 Floyd算法返回最短路径:多源最短路,需要二维空间的数组来存储所有的最短路径,path[i][j],其中 i 表示起点,j 表示终点,那么path[i][j]表示以 j 为终点,i 为起点的最短路径上点 i 的下一个节点。那么在初始化过程中path[i][j
给定点的先后出场次序:例如 点 u 出场的前提是点 v 已经出现,那么这就代表了一个约束条件,现在给出很多的约束条件,用程序来给这些点的出场次序排个序,要求满足所有的约束条件问题,这时候用到的就是拓扑排序。 拓扑排序用于有向无环图,如果过要是想判断一个有向图是否存在环,可以使用拓扑排序进行判断(如果提取入度为0的点的个数没有达到所有点的个数,那么就一定出现环了) 有关拓扑排序的输出问题:
2-SAT团问题:给出 n 个布尔变量(取值0 或 1),之后再给出 m 个有关这些变量的约束条件,设其中有i,j两个变量 必须选择 i必须不选 ii 和 j 中选择一个i 和 j 不都选择i 和 j 选择的情况相同i 和 j 选择的情况相反 问:能否将这 n 个布尔变量分成两个组分,并且满足给定的这 m 个约束条件。 解决方案: 1. 建图假设 i 的对立面是 必须选择 i :必