zoukankan      html  css  js  c++  java
  • 最短路径问题(dijkstra-模板)

    
    
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int a[101][3];
     4 double c[101];
     5 bool b[101];
     6 double f[101][101];
     7 int n,x,y,s,m,e;
     8 int k;
     9 double minn ;
    10 double maxx=1e30;
    11 int main()
    12 {
    13 cin>>n;
    14 for(int i=1;i<=n;i++)
    15 cin>>a[i][1]>>a[i][2];
    16 for(int i=1;i<=n;i++)
    17 for(int j=1;j<=n;j++)
    18 {
    19 f[i][j]=maxx;    
    20 }
    21 cin>>m;
    22 for(int i=1;i<=m;i++)
    23 {
    24     cin>>x>>y;
    25     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));
    26 }
    27 cin>>s>>e;
    28 for(int i=1;i<=n;i++)
    29 c[i]=f[s][i];
    30 memset(b,false,sizeof(b));
    31 b[s]=true;
    32 c[s]=0;
    33 for(int i=0;i<=n-1;i++)
    34 {minn=maxx;
    35 k=0;
    36 for(int j=1;j<=n;j++)
    37 if((!b[j])&&(c[j]<minn))
    38     {
    39         minn=c[j];
    40         k=j;
    41     }
    42 if(k==0)    
    43     break;
    44 b[k]=true;
    45 for(int j=1;j<=n;j++)
    46 if(c[k]+f[k][j]<c[j])
    47 c[j]=c[k]+f[k][j];
    48 }    
    49 printf("%.2lf
    ",c[e]);
    50     return 0;
    51 }
    
    
    
    
    
  • 相关阅读:
    orm 锁 和 事务
    多表查询
    django 单表查询
    djgango装饰器
    几个SQL命令的使用
    怎么成为优秀的软件模型设计者?
    jbpm 工作流(二)
    Jbpm工作流(一)
    EJB 介绍
    JNDI 使用
  • 原文地址:https://www.cnblogs.com/Hammer-cwz-77/p/7353528.html
Copyright © 2011-2022 走看看