zoukankan      html  css  js  c++  java
  • Dijkstra

    /*

    O(V^2)

    */

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    using namespace std;

    int v,e;//顶点数
    const int INF=1<<30;
    const int max_v=1e4+5;
    int d[max_v];//顶点s出发的最短距离
    int cost[max_v][max_v];//边权值
    bool used[max_v];//已经使用过的图

    void  dijkstra(int start)
    {
        fill(d,d+v,INF);
        fill(used,used+v,false);
        d[start]=0;
        while(true)
        {
            int t=-1;
            for(int u=0;u<v;u++)
            {
                if(!used[u]&&(t==-1||d[u]<d[t]))
                    t=u;
            }
            if(t==-1)
                break;
            used[t]=true;
            for(int u=1;u<v;u++)
            {
                d[u]=min(d[u],d[t]+cost[t][u]);
            }

        }
    }

    int main()
    {
        cin>>v>>e;
        for(int i=0;i<v;i++)
        {
            for(int j=0;j<v;j++)
                cost[i][j]=INF;
        }
        int x,y,val;
        for(int i=0;i<e;i++)
        {
            cin>>x>>y>>val;
            cost[x][y]=val;
        }
        int start,End;
        cin>>start>>End;
        dijkstra(start);
        for(int i=0;i<v;i++)
            cout<<d[i]<<' ';
        cout<<endl;
        cout<< d[End]<<endl;
        return 0;
    }

  • 相关阅读:
    Oracle EXP
    Using Spring in Web and WinForms
    System.ComponentModel(未完...)
    工作必须得到强势方的支持!
    book.Save()还是bookManager.Save(book)?
    C#中常用的Attribute搜集(刚开始...)
    领域模型是否能够屏蔽数据库?
    合格代码的最基本的标准
    关于配置系统的设计
    对象分类
  • 原文地址:https://www.cnblogs.com/unknownname/p/7754310.html
Copyright © 2011-2022 走看看