zoukankan      html  css  js  c++  java
  • JZOJ 2114——纪中一日游

    题目描述

    示范性高中评估完之后,专家们觉得纪中太美、太大了,决定游览一下纪中。但纪中校园的太复杂了,什么中山路、庆龄路、幕贞路等等太多了,所以从校门口到新区的路线不止一两条。但是专家的时间是宝贵的,尤其不能浪费。现在,专家车队的队长找到了你,他给了你一张描述了他们待选路线的表(n*n的矩阵A),让你找出行车距离最短的路线。表中表示了任意两个路口的连通情况,以及距离。矩阵元素a(i,j)=0表是路口i,j不连通,a(i,j)!=0表示路口i,j的行车距离。其中校门在路口1,新区在路口n.

    输入

    第一行为一个自然数n(1 < n <= 30);
    接着n行,每行n个整数,描述待选路线的表(元素的值小于1000);

    输出

    第一行为一个整数,表示最短行车的距离。

    样例输入

    4
    0 2 3 4
    2 0 1 1
    3 1 0 0
    4 1 0 0

    样例输出

    3

    数据范围限制

    对于30%的数据,n<=10;
    对于70%的数据,n<=20;
    对于100%的数据, n<=30。


    Floyd!水!


    代码如下:

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int main()
    {
        freopen("tour.in","r",stdin);
        freopen("tour.out","w",stdout);
        int n,a[31][31];
        scanf("%d",&n);
        for (int i=1;i<=n;i++)
            for (int j=1;j<=n;j++)
                scanf("%d",&a[i][j]);
        for (int k=1;k<=n;k++)
            for (int i=1;i<=n;i++)
                for (int j=1;j<=n;j++)
                    if (i!=j&&j!=k&&i!=k)
                        a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
        printf("%d",a[1][n]);
        return 0;
    }
  • 相关阅读:
    HDU 1525
    kmp模板
    hdu 4616 Game(树形DP)
    hdu 4619 Warm up 2(并查集活用)
    hdu 4614 Vases and Flowers(线段树加二分查找)
    Codeforces 400D Dima and Bacteria(并查集最短路)
    poj 2823 Sliding Window (单调队列)
    hdu 2196 Computer(树形dp)
    hdu 4604 Deque
    最短路径
  • 原文地址:https://www.cnblogs.com/Comfortable/p/8412292.html
Copyright © 2011-2022 走看看