spfa

#include<iostream>
#include<stdio.h>
#include<queue>
using namespace std;
const int maxx = 105;
const int INF = 99999999;
int map[maxx][maxx],dist[maxx];
bool visit[maxx];
int n;//路径数
void sofa(int a)
{
    int i,now;
    memset(visit,false,sizeof(visit));
    for(int i=1;i<=n;i++) dist[i]=INF;
    dist[a]=0;
    queue<int>Q;
    Q.push(a);
    visit[a]=true;
    while(!Q.empty())
    {
        now=Q.front();
        Q.pop();
        visit[now]=true;
        for(int i=1;i<=n;i++)
        {
            if(dist[i]>dist[now]+map[now][i])
            {
                dist[i]=dist[now]+map[now][i];
                if(visit[i]==false)
                {
                    Q.push(i);
                    visit[i]=true;
                }
            }
        }
    }
}
int main()
{

}
View Code

 

posted @ 2016-04-24 11:37  超级学渣渣  阅读(121)  评论(0编辑  收藏  举报