zoukankan      html  css  js  c++  java
  • 2602 最短路径问题

    2602 最短路径问题

     

     时间限制: 1 s
     空间限制: 32000 KB
     题目等级 : 黄金 Gold
     
     
    题目描述 Description

    平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现在的任务是找出从一点到另一点之间的最短路径。

    输入描述 Input Description

    第一行为整数n。

    第2行到第n+1行(共n行),每行两个整数x和y,描述了一个点的坐标。

        第n+2行为一个整数m,表示图中连线的个数。

        此后的m行,每行描述一条连线,由两个整数i和j组成,表示第i个点和第j个点之间有连线。

        最后一行:两个整数s和t,分别表示源点和目标点。

    输出描述 Output Description

    仅一行,一个实数(保留两位小数),表示从s到t的最短路径长度。

    样例输入 Sample Input

    5

    0 0

    2 0

    2 2

    0 2

    3 1

    5

    1 2

    1 3

    1 4

    2 5

    3 5

    1 5

    样例输出 Sample Output

    3.41

     

    floyed

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    using namespace std;
    int a[110][3]={0};
    double f[110][110];
    int main()
    {
    	int n,m,s,t;
    	scanf("%d",&n);
    	for (int i=1;i<=n;i++)
    	  scanf("%d%d",&a[i][1],&a[i][2]);
    	scanf("%d",&m);
    	memset(f,0x7f,sizeof(f));//初始化f数组为最大值 
    	for (int i=1;i<=m;i++)//预处理出x、y间的距离 
    	  {
    	  	 int x,y;
    	  	 scanf("%d%d",&x,&y);
    	  	 f[x][y]=f[y][x]=sqrt(pow(double(a[x][1]-a[y][1]),2)+pow(double(a[x][2]-a[y][2]),2));
    	  	 // pow(x,y)表示x^y,其中x,y为double,用cmath库 
    	  }
    	scanf("%d%d",&s,&t);
    	for (int k=1;k<=n;k++)//floyed最短路算法 
    	                    //从i到j经过k作为中转,所以k要放在循环最外层 
    	  for (int i=1;i<=n;i++)
    	    for (int j=1;j<=n;j++)
    	      if ((i!=k)&&(j!=k)&&(i!=j)&&(f[i][k]+f[k][j]<f[i][j]))
    	          f[i][j]=f[i][k]+f[k][j];
    	printf("%.2lf
    ",f[s][t]);
    	return 0;
    }
    

      

    I'm so lost but not afraid ,I've been broken and raise again
  • 相关阅读:
    study os
    open source [license]
    work serises------------patch
    interest in history-----------先秦
    python学习-----------argparse
    problems fixed
    work serises------------adb 使用
    零碎积累之--------------java环境相关
    Hash Table Five Finish
    Hash Table Four
  • 原文地址:https://www.cnblogs.com/sjymj/p/5342718.html
Copyright © 2011-2022 走看看