HDU 6343 Problem L. Graph Theory Homework(水~)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/V5ZSQ/article/details/82453391

Description

给出一张 n 个点的无向图和一个长度为 n 的序列 a i i , j 两点间距离为 | a i a j | ,问 1 , n 两点间最短路径长度

Input

第一行一整数 T 表示用例组数,每组用例首先输入一整数 n ,之后输入 n 个整数表示序列 a

( 1 T 10 , 1 n , a i 10 5 )

Output

输出两点间最短路径长度

Sample Input

1
3
1 3 5

Sample Output

2

Solution

容易证明三角不等式 a + b a + b 成立,故直接从 1 走到 n 最优,注意 n = 1 的情况

Code

#include<cstdio>
#include<cmath>
using namespace std;
int T,n,a[100005];
int main()
{
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)scanf("%d",&a[i]);
        printf("%d\n",(int)sqrt(abs(a[1]-a[n])));
    } 
    return 0;
}

猜你喜欢

转载自blog.csdn.net/V5ZSQ/article/details/82453391