zoukankan      html  css  js  c++  java
  • dijkstra模板

    题目大意:

    最短路模板;

    基本思路:

    贪心

    代码如下:

    int dis[maxn];
    bool vis[maxn];
    vector<int>gra[maxn];
    struct Node{
        int u,w;
        Node(int u_,int w_){
            u=u_;w=w_;
        }
        bool operator<(const Node& rhs)const{
            return w>rhs.w;
        }
    };
    struct Edge{
        int from,to,dist;
        Edge(int u,int v,int d):from(u),to(v),dist(d){}
    }edge[maxn];
    void dijkstra(int s){
        priority_queue<Node>pq;pq.push(Node(s,0));
        memset(dis,inf,sizeof(dis));dis[s]=0;
        memset(vis,false,sizeof(vis));
        while(!pq.empty()){
            Node tmp=pq.top();
            int u=tmp.u;
            if(vis[u]){
                continue;
            }
            vis[u]=true;
            int sz=gra[u].size();
            for(int i=0;i<sz;i++){
                Edge& e=edge[gra[u][i]];
                if(dis[e.to]>dis[u]+e.dist){
                    dis[e.to]=dis[u]+e.dist;
                    pq.push(Node(e.to,dis[e.to]));
                }
            }
        }
    }
    

      

  • 相关阅读:
    第三周学习进度
    计算最低价格
    第二阶段冲刺5
    第二阶段冲刺4
    第十三周进度条
    第二阶段冲刺3
    寻找小水王
    第二阶段冲刺2
    第二阶段冲刺1
    构建之法阅读笔记
  • 原文地址:https://www.cnblogs.com/imzscilovecode/p/8448119.html
Copyright © 2011-2022 走看看