POJ 1502 水 dij

题意:给N,表示N个节点。

给半个邻接矩阵,本身到本身的距离是0,边是双向的。当两个节点之间没有直接的边连接的时候,用x表示。

问从第一个节点到其他所有节点至少花费的时间。

这题唯一的处理是处理邻接矩阵的时候处理先当作字符串读入,然后处理一下数据,变成数据格式。

最后是输出第一个节点到其他所有节点最短路的最大值。

#include<stdio.h>
#include<string.h>
int n;
const int inf=99999999;
int pho[105][105];
char tmp[105][1000];
bool vis[105];
int dis[105];
void solve(int pos)
{
    vis[pos]=1;
    for(int i=1;i<=n;i++)
    {
        if(!vis[i]&&pho[pos][i]+dis[pos]<dis[i])
        {
            dis[i]=pho[pos][i]+dis[pos];
        }
    }
    int next=inf;
    int minn=inf;
    for(int i=1;i<=n;i++)
    {
        if(!vis[i])
        {
            if(minn>dis[i])
            {
                minn=dis[i];
                next=i;
            }
        }
    }
    if(next<=n)
        solve(next);
}
int main()
{
    int len;
    int num;
    int ttt;
    scanf("%d",&n);
    getchar();
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            pho[i][j]=inf;
        }
        pho[i][i]=0;
        dis[i]=inf;
    }
    for(int i=2;i<=n;i++)
    {
        gets(tmp[i]);
    }
    for(int i=2;i<=n;i++)
    {
        num=0;
        len=strlen(tmp[i]);
        tmp[i][len]=32;
        ttt=0;
        for(int j=0;j<=len;j++)
        {
            if(tmp[i][j]==32)
            {
                num++;
                pho[num][i]=pho[i][num]=ttt;
                ttt=0;
            }
            else if(tmp[i][j]==‘x‘)
            {
                ttt=inf;
            }
            else
            {
                ttt*=10;
                ttt+=tmp[i][j]-48;
            }
        }
    }
    dis[1]=0;
    solve(1);
    int maxx=-1;
    for(int i=1;i<=n;i++)
    {
        if(maxx<dis[i])
            maxx=dis[i];
    }
    printf("%d\n",maxx);
}
时间: 2024-10-20 04:45:37

POJ 1502 水 dij的相关文章

poj 1502 最段路径

*/--> pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} poj 1502 最段路径 连接:http://poj.org/problem?id=1502 5 50 30 5 100 20 50 10 x x 10 第一行表示有 n 个点,之后第二行的第一个数表示 (2,1)的距离:第三行的第一个数表示 (3,1),第二个数表示 (3,2).以此类推

poj 1502 最短路+坑爹题意

链接:http://poj.org/problem?id=1502 MPI Maelstrom Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5249   Accepted: 3237 Description BIT has recently taken delivery of their new supercomputer, a 32 processor Apollo Odyssey distributed share

poj 3463 Sightseeing (dij 求最短路和次短路并计数)

dijkstra求最短路和次短路的求法和计算  模板 dijkstra求最短路的变形. 外循环要循环2*n-1次,因为dis[n][2]有2*n个状态,而dis[s][0]已经用过一次. 算法: 1.如果比最短路短就更新最短路和次短路. 2.如果和最短路相等,更新最短路的计数. 3.如果和次短路相等,更新次短路的方法数. 4.如果比次短路短,更新次短路. #include<cstdio> #include<iostream> #include<cstring> #inc

poj 1502 MPI Maelstrom(最短路)

poj 1502 MPI Maelstrom Description BIT has recently taken delivery of their new supercomputer, a 32 processor Apollo Odyssey distributed shared memory machine with a hierarchical communication subsystem. Valentine McKee's research advisor, Jack Swige

MPI Maelstrom POJ 1502

http://poj.org/problem?id=1502 题意:这是一个下三角,上三角跟下三角图形一致,(若是完整的矩阵的话, 相当于 Map[i][j] 的距离为相对应的数值)这道题也一样. 不同的是 若 显示的为 ‘x’字母时, 说明Map[i][j]为正无穷, 两个点之间不通. 现在的问题是:求1到2, 1到3, .... 1到n 之中哪条路是最短的. **** 英语真的是太渣,表示看懂题意不是一般的难啊, 但是看懂题意后真的好简单 %>_<% .. 不要再考我英语了,我诚实的说四级

poj 1502 MPI Maelstrom

题目链接: http://poj.org/problem?id=1502 题目大意: 有一个信息传递系统,含有n个处理器,传递信息的方式是:刚开始编号为1的处理器拥有信息,他可以传给下一个处理器,然后这两个拥有信息的处理器可以同时向下传递给其他两个处理器,拥有信息的四个处理器再依次如此传递,直到所有处理器都接受到信息的最短时间是多少? 解题思路: 把传递路径画出来,看出可以转化成求从1到其他位置的最短路径中的最长路径,刚看到题目感觉没什么思路,但是建立出来模型以后用dijkstra就好啦! 1

Invitation Cards POJ 1511 SPFA || dij + heap

http://poj.org/problem?id=1511 求解从1去其他顶点的最短距离之和. 加上其他顶点到1的最短距离之和. 边是单向的. 第一种很容易,直接一个最短路, 然后第二个,需要把边反向建一次,跑一个最短路就好. ★.cin  cout 超时 #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <algorithm> #

POJ 1502 MPI Maelstrom (Dijkstra 模板题)

MPI Maelstrom Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5877   Accepted: 3654 Description BIT has recently taken delivery of their new supercomputer, a 32 processor Apollo Odyssey distributed shared memory machine with a hierarchic

POJ 1502 MPI Maelstrom (最短路)

MPI Maelstrom Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6329   Accepted: 3925 Description BIT has recently taken delivery of their new supercomputer, a 32 processor Apollo Odyssey distributed shared memory machine with a hierarchic