zoukankan      html  css  js  c++  java
  • 最短路模板

    xls的dij模板

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<queue>
    #include<vector>
    #include<cmath>
    using namespace std;
    const int N=1e3+5;
    const int inf=1e9;
    struct node{
        int u,d;
        node(int u,int d):u(u),d(d){}
        bool operator <(const node &a)const{
            return d>a.d;
        }
    };
    priority_queue<node>q;
    vector<int>G[N],dis[N];
    int vis[N],d[N];
    void init(){
        for(int i=1;i<N;i++)
        G[i].clear(),dis[i].clear();
        for(int i=1;i<N;i++)
        vis[i]=0,d[i]=inf;
        while(!q.empty())q.pop();
    }
    int dij(){
        while(!q.empty()){
            node e=q.top();
            q.pop();
            int u=e.u;
            if(vis[u]==1)continue;
            if(vis[u]==2)return e.d;
            vis[u]=1;
            for(int i=0;i<G[u].size();i++){
                int v=G[u][i];
                if(d[v]>d[u]+dis[u][i]){
                    d[v]=d[u]+dis[u][i];
                    q.push(node(v,d[v]));
                }
            }
        }
    }
    int main(){
        int T,S,D,u,v,w;
        while(~scanf("%d%d%d",&T,&S,&D)){
            init();
            for(int i=0;i<T;i++){
                scanf("%d%d%d",&u,&v,&w);
                G[u].push_back(v);
                G[v].push_back(u);
                dis[u].push_back(w);
                dis[v].push_back(w);
            }
            for(int i=0;i<S;i++){
                scanf("%d",&u);
                q.push(node(u,0));
                d[u]=0;
            }
            for(int i=0;i<D;i++){
                scanf("%d",&u);
                vis[u]=2;
            }
            printf("%d
    ",dij()); 
        }
    } 
  • 相关阅读:
    - 错误笔记
    只是一个没有人知道的蒟蒻
    省选前模板复习
    数学知识小结#1
    写在NOIP2018后
    Atcoder&CodeForces杂题11.7
    Atcoder&CodeForces杂题11.6
    [NOIP11.1模拟赛]补番报告
    [JZOJ5281]钦点题解--瞎搞+链表
    [JZOJ5280]膜法师题解--思维+前缀和
  • 原文地址:https://www.cnblogs.com/ccsu-zry/p/9769702.html
Copyright © 2011-2022 走看看