zoukankan      html  css  js  c++  java
  • 【POJ】2387 Til the Cows Come Home

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

    题意:求从1到n的最短路

    题解:板子题。spfa。

    代码:

     1 #include<iostream>
     2 #include<stack>
     3 #include<vector>
     4 #include<queue>
     5 #include<algorithm>
     6 using namespace std;
     7 const int maxn = 2e5+7;
     8 
     9 vector< pair<int,int> > e[maxn];
    10 
    11 int n,m;
    12 int d[maxn],inq[maxn];
    13 
    14 void init(){
    15     for(int i = 0; i < maxn; i++)
    16         e[i].clear();
    17     for(int i = 0 ;i < maxn ; i++)
    18         inq[i] = 0;
    19     for(int i = 0 ; i < maxn ; i++)
    20         d[i] = 1e9;
    21 }
    22 
    23 int main(int argc, const char * argv[]) {
    24     while(cin>>m>>n){
    25         init();
    26         int x,y,z;
    27         for(int i = 0; i < m ;i++){
    28             cin>>x>>y>>z;
    29             e[x].push_back(make_pair(y,z));
    30             e[y].push_back(make_pair(x,z));
    31         }
    32         int s,t;
    33         //cin>>s>>t;
    34         s = 1;
    35         t = n;
    36         queue<int>Q;
    37         Q.push(s);d[s] = 0 ;inq[s] = 1;
    38         while( !Q.empty() ){
    39             int now = Q.front();
    40             Q.pop();
    41             inq[now] = 0;
    42             for(int i = 0; i < e[now].size() ; i++){
    43                 int v = e[now][i].first;
    44                 if(d[v] > d[now] + e[now][i].second){
    45                     d[v] = d[now] + e[now][i].second;
    46                     if(inq[v] == 1)
    47                         continue;
    48                     inq[v] = 1;
    49                     Q.push(v);
    50                 }
    51             }
    52 
    53         }
    54         if(d[t] == 1e9)
    55             cout<<-1<<endl;
    56         else
    57             cout<<d[t]<<endl;
    58     }
    59     return 0;
    60 }

    看题没看仔细。。。一直n和m输入反了,还以为是去重的问题。搞了好久。。然后发现其实pair这样存储的模式不用考虑去重的问题。也算是有所收获吧。哎。心痛。。

  • 相关阅读:
    解决vue空格换行报错问题
    基本的项目开发流程(前后端开发)
    whl包构建
    Python虚拟环境创建
    页面适配 JS
    SpringBoot整合Ehcache3
    SpringBoot文件分片上传
    SpringBoot访问jar包静态文件
    SpringBoot整合Minio文件存储
    SpringBoot多环境配置文件打包
  • 原文地址:https://www.cnblogs.com/Asumi/p/9699058.html
Copyright © 2011-2022 走看看