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
  • 相关阅读:
    Mac 安装实用开发软件和日常软件清单
    Docker zabbix-agent 监控 docker tomcat 多实例
    zabbix 组件监控概述
    实况8操作指南
    关于哲哲跳舞这件小事儿
    左耳听风笔记摘要(11-12)程序的异常处理
    左耳听风笔记摘要(07-10)推荐书单/Go/Docker
    从零开始的vue学习笔记(一)
    简述Spark工作流程
    opengl简单入门实例
  • 原文地址:https://www.cnblogs.com/xianxingwuguan/p/3323526.html
Copyright © 2011-2022 走看看