zoukankan      html  css  js  c++  java
  • dijkstra 优先队列最短路模板

    const int inf=1000000000;
    const int maxn=300010;
    int dist[maxn],head[maxn],tol,m,n;
    struct Edge
    {
            int to,next,val;
    }edge[10*maxn];
    void add(int u,int v,int w)
    {
            edge[tol].to=v;
            edge[tol].next=head[u];
            edge[tol].val=w;
            head[u]=tol++;
    }
    struct Node
    {
            int id,dist;
            Node(int a=0,int b=0):id(a),dist(b){}
            bool operator < (const Node &b) const
            {
                    return dist>b.dist;
            }
    };
    void fun(int st)
    {
            int i,j,u,v;
            priority_queue<Node> q;
            q.push(Node(st,0));
            for(i=1;i<=n;i++)dist[i]=inf;
            dist[st]=0;
            while(!q.empty())
            {
                    Node ret=q.top();q.pop();
                    u=ret.id;
                    if(dist[u]<ret.dist)continue;
                    for(i=head[u];i!=-1;i=edge[i].next)
                    {
                            v=edge[i].to;
                            if(dist[v]>dist[u]+edge[i].val)
                            {
                                    dist[v]=dist[u]+edge[i].val;
                                    q.push(Node(v,dist[v]));
                            }
                    }
            }
    }
    my code
  • 相关阅读:
    程序员创业必读的几本书
    新手上路—Java的"瑞士军刀"
    小团队互联网创业记
    Coder必须自废的两样神功
    码界新手,如何更高效的解决问题
    【转载】FckEditor 2.6.3 for Java 2.4 配置
    struts2上传多文件(b)
    Java基础-Java中的Calendar和Date类
    JAVA加减日期
    Java程序员应该了解的10个面向对象设计原则
  • 原文地址:https://www.cnblogs.com/xianxingwuguan/p/3323526.html
Copyright © 2011-2022 走看看