zoukankan      html  css  js  c++  java
  • POJ3255

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

    解题思路:

      昨晚两点多睡不着翻起来刷《挑战》的题,结果遇到这道求次短路的题,一脸懵逼。想了半小时没什么思路就看他的解答了。具体看代码吧,讲解可以参考《挑战程序设计竞赛》P119。其实还是Dijkstra算法的变形。但是这个变形确实不太好想。

    AC代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <vector>
     4 #include <queue>
     5 using namespace std;
     6 typedef pair<int,int> P;
     7 const int maxn=5000+3,inf=0x7ffffff;
     8 struct edge{
     9     int to,cost;
    10 };
    11 vector<edge> G[maxn];
    12 int d[maxn],d2[maxn];
    13 int main()
    14 {
    15     int N,R,A,B,D;
    16     scanf("%d%d",&N,&R);
    17     while(R--){
    18         scanf("%d%d%d",&A,&B,&D);
    19         edge temp;
    20         temp.cost=D;
    21         temp.to=B;  G[A].push_back(temp);
    22         temp.to=A;  G[B].push_back(temp);
    23     }
    24     priority_queue<P,vector<P>,greater<P> > que;
    25     for(int i=1;i<=N;i++)   d[i]=d2[i]=inf;
    26     d[1]=0;
    27     que.push(P(0,1));
    28     while(!que.empty()){
    29         P p=que.top();  que.pop();
    30         int v=p.second;
    31         if(d2[v]<p.first)   continue;       //如果次短路都比此短,那么就没有更新的必要了
    32         for(int i=0;i<G[v].size();i++){
    33             edge e=G[v][i];
    34             int dt=p.first+e.cost;     //一开始那个p.first被我携程d[v]了,很显然有bug
    35             if(d[e.to]>dt){
    36                 swap(d[e.to],dt);
    37                 que.push(P(d[e.to],e.to));
    38             }
    39             if(d2[e.to]>dt&&dt>d[e.to]){
    40                 d2[e.to]=dt;
    41                 que.push(P(d2[e.to],e.to));
    42             }
    43         }
    44     }
    45     printf("%d
    ",d2[N]);
    46 
    47     return 0;
    48 }
    “这些年我一直提醒自己一件事情,千万不要自己感动自己。大部分人看似的努力,不过是愚蠢导致的。什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得夸耀,那么富士康流水线上任何一个人都比你努力多了。人难免天生有自怜的情绪,唯有时刻保持清醒,才能看清真正的价值在哪里。”
  • 相关阅读:
    反向代理实例
    nginx常用命令和配置
    nginx的安装
    Can Live View boot up images acquired from 64bit OS evidence?
    What is the behavior of lnk files?
    EnCase v7 search hits in compound files?
    How to search compound files
    iOS 8.3 JB ready
    Sunglasses
    现代福尔摩斯
  • 原文地址:https://www.cnblogs.com/Blogggggg/p/7294225.html
Copyright © 2011-2022 走看看