zoukankan      html  css  js  c++  java
  • 78.圣诞广场 (15分)

    C时间限制:3000 毫秒 |  C内存限制:3000 Kb
    题目内容:
    Angel最近无聊,去了圣诞岛(CX *^_^*),他喜欢无目的的乱逛,当然,他不会轻易地回头。Angel想
    去广场,那么,他什么时候才能到呢?你已经得到了CX的地图,地图上有N(N <= 100)个交叉路口,交
    叉路口之间有马路相连接(不超过1000条马路)。因为CX的人遵循奇怪的规则,道路都是单向的,不同
    的道路之间有一定的距离,我们假设Angel所在的地点为点1,广场所在点为N。假设Angel走一单位距
    离需要一单位时间。问Angel最早和最迟什么时候到达广场?
    输入描述
    本题有多组数据,第一行N, M,M是边的数量,以后M行,每行3个整数X, Y, Weight,代表一条从X
    城市到Y城市,长度为Wweight的边。
    输出描述
    每组数据,第一行是最少时间,第二行是最迟时间,要是可怜的Angel可能永远到不了广场,输
    出一行Never。
    输入样例
    5 5
    1 2 1
    1 4 10
    2 3 1
    3 4 1
    4 5 1
    输出样例
    4
    11


    思路:

    这道题用的是任意两点间的最短路Floyd-Warshall算法思想,算是直接用板子


    代码:

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    const int maxn = 1e3+10;
    #define Inf  0x3f3f3f3f
    int a[maxn][maxn];
    int b[maxn][maxn];
    int main(){
        int n,m;
        cin>>n>>m;
        int x,y,w;
        for(int i = 1;i<=n;i++)
            for(int j = 1;j<=n;j++){
                if(i==j)
                    a[i][j] = 0;
                else
                    a[i][j] = Inf;
            }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                b[i][j] = 0;
            }
        }
            
        for(int i=1;i<=m;i++){
            scanf("%d%d%d",&x,&y,&w);
            a[x][y] = w;
            b[x][y] = w;
        }
        for(int k = 1;k<=n;k++){
            for(int i = 1;i<=n;i++){
                for(int j=1;j<=n;j++){
                    if(a[i][k]+a[k][j]<a[i][j]){
                        a[i][j] = a[i][k]+a[k][j];
                    }
                }
            }
        }
        cout<<a[1][n]<<endl;
        for(int k = 1;k<=n;k++){
            for(int i=1;i<=n;i++){
                for(int j=1;j<=n;j++){
                    if(b[i][k]!=0&&b[k][j]!=0&&b[i][k]+b[k][j]>b[i][j])
                        b[i][j] = b[i][k]+b[k][j];
                }
            }
        }
        cout<<b[1][n]<<endl;
        return 0;
    }
  • 相关阅读:
    一个基于JBoss5.1+EJB3.0 登陆应用
    专题开发十二:JEECG微云高速开发平台-基础用户权限
    linux监控脚本
    centos Ddos防范开源软件使用及apache ab压测 测试
    centos curl web站点监控实践
    linux Qt5开发案例实践
    CentOS 基于KVM的云计算之虚拟化libvirt shell --- virsh
    linux shell命令行下操作mysql 删除mysql指定数据库下的所有表--亲测成功百分百测试通过--绝对可靠
    C指针
    Aix5~6小机运维
  • 原文地址:https://www.cnblogs.com/lusiqi/p/11609847.html
Copyright © 2011-2022 走看看