Sample Input
4 8 2
1 2 4
1 3 2
1 4 7
2 1 1
2 3 5
3 1 2
3 4 4
4 2 3
Sample Output
10
注意:
- 在写正向和反向dij的时候注意替换全部的dis和visited为另外一个数组 否则你就会debug两小时(逃)
- 考虑提前终止条件,当前点的更新最好放在循环外边
考虑用邻接数组代替邻接链表?(节省时间)
代码如下:
#include <stdio.h>
#include <iostream>
#include <vector>
using namespace std;
int INF = 1e8;
struct Node{
int end;
int cost;
Node(int m,int n){
end = m;
cost = n;
}
};
vector<vector<Node> > graph(1005,vector<Node>());
vector<vector<Node> > reverse(1005,vector<Node>());
vector<int> dis(1005);
vector<bool> visited(1005);
vector<int> revdis(1005);
vector<bool