zoukankan      html  css  js  c++  java
  • POJ 3255 Roadblocks

    链接:http://poj.org/problem?id=3255


    题目要求1~N的次短路径. 

    代码来自《挑战程序设计竞赛》


    #include <iostream>
    #include<queue>
    #include<vector>
    #define MAX_N 100005
    #define INF 1000000
    using namespace std;
    struct edge
    {
        int to;
        int cost;
    };
    typedef pair<int ,int> P;
    vector<edge> g[MAX_N];
    int dist1 [MAX_N];
    int dist2 [MAX_N];
    priority_queue<P,vector<P>,greater<P> > que;
    
    
    
    void solve(int N)
    {
        int i;
        for(i=0;i<MAX_N;i++)
        {
            dist1[i]=INF;
            dist2[i]=INF;
        }
        dist1[0]=0;
        que.push(make_pair(0,1));
        while(!que.empty())
        {
            P p=que.top();
            que.pop();
            int v=p.second,d=p.first;
            if(dist2[v]<d)
                continue;
            for(i=0; i<g[v].size(); i++)
            {
                edge &e=g[v][i];
                int d2=d+e.cost;
                if(dist1[e.to]>d2)
                {
                    swap(dist1[e.to],d2);
                    que.push(make_pair(dist1[e.to],e.to));
                }
                if(dist2[e.to]>d2&&dist1[e.to]<d2)
                {
                    dist2[e.to]=d2;
                    que.push(make_pair(dist2[e.to],e.to));
                }
    
            }
    
        }
        cout<<dist2[N]<<endl;
    
    
    }
    
    int main()
    {
        int N,R;
        int ta,tb,tc;
        int i;
        edge e;
        cin>>N>>R;
        for(i=0;i<R;i++)
        {
            cin>>ta>>tb>>tc;
            e.to=tb;e.cost=tc;
            g[ta].push_back(e);
            e.to=ta;
            g[tb].push_back(e);
        }
        solve(N);
    
        return 0;
    }


  • 相关阅读:
    Expedition(POJ 2431)
    spring异步@Async原理和注意问题
    springBoot事件
    spring定时任务原理
    BeanFactory和FactoryBean的区别
    Spring容器启动流程——源码阅读分析
    spring循环依赖
    spring相关的问题和原因分析
    zookeeper原理
    zookeeper的使用
  • 原文地址:https://www.cnblogs.com/frankM/p/4399491.html
Copyright © 2011-2022 走看看