• codevs 2602 最短路径问题x


                         题目描述 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

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstring>
     5 #include<string>
     6 
     7 using namespace std;
     8 
     9 const int MAXN=111;
    10 int n,m;
    11 int s,t;  //起止点 
    12 int game[MAXN][3];
    13 double over[MAXN][MAXN];
    14 
    15 void qwq(int start,int end) {
    16     for(int k=1; k<=n; k++) {
    17         for(int i=1; i<=n; i++) {
    18             for(int j=1; j<=n; j++) {
    19                 if(over[i][j]>over[i][k]+over[k][j]) {
    20                     over[i][j]=over[i][k]+over[k][j];
    21                 }
    22             }
    23         }
    24     }
    25     printf("%.2lf
    ",over[start][end]);
    26 
    27 }
    28 
    29 int main() {
    30     scanf("%d",&n);
    31     for(int i=1;i<=n;i++)
    32     {
    33         scanf("%d %d",&game[i][1],&game[i][2]);
    34     }
    35     scanf("%d",&m);
    36     int a,b;
    37     memset(over,0x7f,sizeof(over));
    38     for(int i=1;i<=m;i++)
    39     {
    40         scanf("%d%d",&a,&b);
    41         over[a][b]=over[b][a]=sqrt(pow(double(game[a][1]-game[b][1]),2)+pow(double(game[a][2]-game[b][2]),2));
    42     }
    43     scanf("%d%d",&s,&t);
    44     qwq(s,t);
    45     return 0;
    46 }

    如果运气好也是错,那我倒愿意错上加错!

    ❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

  • 相关阅读:
    【刷题】LOJ 6009 「网络流 24 题」软件补丁
    lab 项目
    js内的时间戳指的是当前时间到1970年1月1日00:00:00 UTC对应的毫秒数,和 unix时间戳是对应的秒数,差了1000倍
    js 原生: 身份证脱敏、唯一随机字符串uuid、对于高 index 元素的隐藏与显示
    diy 滚动条 样式 ---- 核心代码
    PC_后台管理系统
    三端兼容项目
    阿里小程序
    到位App_jQuery_art-template
    一步一步 copy163: 网易严选 ---- vue-cli
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/6686414.html
Copyright © 2020-2023  润新知