Dijkstra。
#include <stdio.h>
#include <string.h>
#define CLR(a,v) memset(a,v,sizeof(a))
#define min(a,b) a < b ? a : b
#define N 105
#define M 10005
struct Vertex
{
int head;
}V[N];
struct Edge
{
int v,w,next;
}E[M];
int n,m,top,d[N];
bool in[N];
void Init()
{
CLR(in,false);
CLR(d,63);
CLR(V,-1);
top = 0;
}
void Add_Edge(int u,int v,int w)
{
E[top].v = v;
E[top].w = w;
E[top].next = V[u].head;
V[u].head = top++;
}
void Dijkstra(int s)
{
int p = s,t = ......
阅读全文