码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 1502 MPI MaeIstrom ( 裸最短路 || atoi系统函数 )

时间:2017-10-24 22:54:33      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:输入   poj   family   作用   splay   priority   scanf   字符串   cto   

题意 : 给出 N 个点,各个点之间的路径长度用给出的下三角矩阵表示,上上角矩阵和下三角矩阵是一样的,主对角线的元素都是 0 代表自己到达自己不用花费,现在问你从 1 到 N 的最短路,矩阵的 x 代表点间无法互相到达

 

分析 : 最短路模板…… 就是在输入的时候需要将字符串变成整数、自己写也可以,也可以使用 atoi(char *)函数,其作用是将字符串数组变成整数,复杂度为 O(n)

 

技术分享
#include<bits/stdc++.h>
using namespace std;
const int maxn = 110;
const int INF  = 0x3f3f3f3f;
typedef pair<int, int> HeapNode;

struct EDGE{ int v, nxt, w; };
int Head[maxn], Dis[maxn];
EDGE Edge[maxn*maxn];
int N, cnt;
inline void init()
{
    for(int i=0; i<=N; i++)
        Head[i]=-1, Dis[i]=INF;
    cnt = 0;
}

inline void AddEdge(int from, int to, int weight)
{
    Edge[cnt].v = to;
    Edge[cnt].w = weight;
    Edge[cnt].nxt = Head[from];
    Head[from] = cnt++;
}

int Dijkstra(int st)
{
    priority_queue< HeapNode, vector<HeapNode>, greater<HeapNode> > Heap;
    Dis[st] = 0;
    Heap.push(make_pair(0, st));
    while(!Heap.empty()){
        pair<int, int> T = Heap.top(); Heap.pop();
        if(T.first != Dis[T.second]) continue;
        for(int i=Head[T.second]; i!=-1; i=Edge[i].nxt){
            int Eiv = Edge[i].v;
            if(Dis[Eiv] > Dis[T.second] + Edge[i].w){
                Dis[Eiv] = Dis[T.second] + Edge[i].w;
                Heap.push(make_pair(Dis[Eiv], Eiv));
            }
        }
    }
    int ret = 0;
    for(int i=1; i<=N; i++)
        ret = max(ret, Dis[i]);
    return ret;
}
char Digit[10];
int main(void)
{

    while(~scanf("%d", &N)){
        init();
        for(int i=1; i<=N; i++){
            for(int j=1; j<i; j++){
                scanf("%s", Digit);
                if(Digit[0] != x){
                    int weight = atoi(Digit);
                    AddEdge(i, j, weight);
                    AddEdge(j, i, weight);
                }
            }
        }
        printf("%d\n", Dijkstra(1));
    }

    return 0;
}
View Code

 

POJ 1502 MPI MaeIstrom ( 裸最短路 || atoi系统函数 )

标签:输入   poj   family   作用   splay   priority   scanf   字符串   cto   

原文地址:http://www.cnblogs.com/Rubbishes/p/7725605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!