zoukankan      html  css  js  c++  java
  • hdu2544最短路径spfa模版题

     
    #include <cstdlib>
    #include <iostream>
    #include<vector>
    #include<queue>
    using namespace std;
    struct edge
    {
        int from,to,cost;
    };
    const int MAXN=111;
    const int MAX=999999;
    vector<edge>v[MAXN];
    bool in_queue[MAXN];
    int dist[MAXN];
    void spfa(int p)
    {
        queue<int>q;
        int i=0;
        memset(in_queue,0,sizeof(in_queue));
        for(i=0;i<=MAXN;i++)
        {
            dist[i]=MAX;
        }
        while(!q.empty())
        {
            q.pop();
        }
        dist[p]=0;
        q.push(p);
        in_queue[p]=1;
        while(!q.empty())
        {
            int cur=q.front();
            int i=0;
            q.pop();
            in_queue[cur]=0;
            for(i=0;i<=int(v[cur].size())-1;i++)
            {
                int cost=v[cur][i].cost+dist[cur];
                int to=v[cur][i].to;
                if(cost<dist[to])
                {
                    dist[to]=cost;
                    if(!in_queue[to])
                    {
                        q.push(to);
                        in_queue[to]=1;
                    }
                }
            }
        }
    }
    
    int main(int argc, char *argv[])
    {
        int n,m;
        while((cin>>n>>m)&&(!((n==0)&&(m==0))))
        {
            int i=0;
            for(i=0;i<=n+1;i++)
            {
                v[i].clear();
            }
           
            while(m--)
            { 
                int from,to,cost;
                cin>>from>>to>>cost;
                edge e={from,to,cost};
                v[e.from].push_back(e);
                swap(e.from,e.to);
                v[e.from].push_back(e);
            }
            spfa(1);
            cout<<dist[n]<<endl;
        }
        //system("PAUSE");
        return EXIT_SUCCESS;
    }
     

      

  • 相关阅读:
    Solr 配置连接数据库
    最大利润
    分割金条的最小代价
    民居点亮
    一个会议室最多安排几场宣讲
    N皇后问题
    Integer的缓存机制
    Windows快捷键
    二叉树中两个节点的最低公共祖节点
    判断二叉树是不是完全二叉树
  • 原文地址:https://www.cnblogs.com/cj695/p/2609506.html
Copyright © 2011-2022 走看看