poj 1797_迪杰斯特拉
来源:互联网 发布:java通过ip获取地区 编辑:程序博客网 时间:2024/06/16 15:52
题目描述:
道路x->y之间的权值表示允许容量。求从1出发,到达n点的最大允许通过容量为多少。(注意:为无向图)
解题思路:
做一次迪杰斯特拉。D[i]存1->i的允许通过的容量值。每次选择容量最大的点,选进下一个点后更新点:D[j] = max(D[j],min(D[选择的点], G[选择的点][j]))。更新到n点即可成功退出。若未更新到n点,却发现找不到容量大于0的路,直接退出输出0。
时间复杂度为O(v2)
代码:
#include <stdio.h>
#include <stdlib.h>
#define N 1001
int G[N][N];
int D[N], final[N];
int max_num(int x, int y)
{
}
int min_num(int x,int y)
{
}
main()
{