一 .图论:
最短路:
1. Dijkstra 算法:
/*用优先队列优化,vector存储边,
输入方式:
while (~scanf("%d%d", &m, &n) && m) {
for (int i = 0; i < m; i++) {
scanf("%d%d%d", &a, &b, &c);
G[a].push_back(edge(b, c));
G[b].push_back(edge(a, c));
}
}
*/
#define INF 0x7fffffff
#define ll long long
#define MAX_V 1005
struct edge {
int to, cost;
edge() {}
edge(int a, int b) {
to = a;
cost = b;
}
};
typedef pair<int, int> P;
vector<edge> G[MAX_V];
int d[MAX_V];
int v, n, m;
void Dijkstra(int st) {
priority_queue<P, vector<P>, greater<P>> q;
for (int i = 0; i <= n; i++) {
d[i] = INF;
}
v = -1;
q.push(