zoukankan      html  css  js  c++  java
  • Poj 3268 Silver Cow Party

    最短路水题,这次用SPFA写

    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #include <climits>
    #include <string>
    #include <iostream>
    #include <map>
    #include <cstdlib>
    #include <list>
    #include <set>
    #include <queue>
    #include <stack>
    
    using namespace std;
    
    typedef long long LL;
    const int maxn = 1000 + 5;
    const int INF = INT_MAX / 2;
    const int maxm = 100000 + 5;
    int first[maxn],nxt[maxm],u[maxm],v[maxm],w[maxm];
    int N,M,X,d1[maxn],d2[maxn];
    bool vis[maxn];
    
    void spfa(int *v,int *d) {
        memset(vis,0,sizeof(vis));
        for(int i = 1;i <= N;i++) d[i] = INF;
        d[X] = 0;
        queue<int> q;
        q.push(X);
        while(!q.empty()) {
            int u = q.front(); q.pop();
            vis[u] = false;
            for(int i = first[u];i != 0;i = nxt[i]) {
                if(d[v[i]] > d[u] + w[i]) {
                    d[v[i]] = d[u] + w[i];
                    if(!vis[v[i]]) {
                        vis[v[i]] = true;
                        q.push(v[i]);
                    }
                }
            }
        }
    }
    
    void adde(int u,int i) {
        nxt[i] = first[u];
        first[u] = i;
    }
    
    int main() {
        while(scanf("%d%d%d",&N,&M,&X) != EOF) {
            memset(first,0,sizeof(first));
            memset(nxt,0,sizeof(nxt));
            for(int i = 1;i <= M;i++) {
                scanf("%d%d%d",&u[i],&v[i],&w[i]);
                adde(u[i],i);
            }
            spfa(v,d1);
            memset(first,0,sizeof(first));
            memset(nxt,0,sizeof(nxt));
            for(int i = 1;i <= M;i++) {
                adde(v[i],i);
            }
            spfa(u,d2);
            int ans = 0;
            for(int i = 1;i <= N;i++) ans = max(ans,d1[i] + d2[i]);
            printf("%d
    ",ans);
        }
        return 0;
    }
    

      

  • 相关阅读:
    UPC2018组队训练赛第二场
    杭电多校训练第十场
    socks5 代理
    windows pip 报错Unable to find vcvarsall.bat
    emacs笔记
    homestead oci8
    pyenv install
    chrome 设置sock5代理
    laravel 接收post json
    laravel 使用已有数据库自动创建model
  • 原文地址:https://www.cnblogs.com/rolight/p/3850396.html
Copyright © 2011-2022 走看看