C++實例(求單源最短路的模板)
最短路(Dijkstra Priority_queue 鄰接表)
struct NODE
{
int to;
int len;
bool operator };
void dijkstra(int n,vector buf[],int s,int* min)
{
int i;
NODE v;
for (i=0;imin[v.to] buf[v.to][i].len )
{
que.push(buf[v.to][i]);
min[buf[v.to][i].to]=min[v.to] buf[v.to][i].len;
}
}
}
最短路(SPFA 正曏表)
Const int INF = 1000000000;
struct NODE
{
int to;
int len;
struct NODE *next;
};
void SPFA( NODE* mat[] , int P , int s , int dis[] )
{
int i,x,head,tail;
NODE* tp;
for(i=0;ito] > dis[x] tp->len )
{
dis[tp->to]=dis[x] tp->len;
if(!inqueue[tp->to])
{
que[tail ]=tp->to;
inqueue[tp->to]=true;
}
}
}
}
第二個SPFA是從網上找來的脩改了一下,因爲做了poj1511,所以把鄰接表用前曏星的形式寫了,題目中的數據大的變態。。。1
0條評論