zoukankan      html  css  js  c++  java
  • HDU 2066最短路径Dijkstra、

    思路:枚举所有起点城市然后比较每个起点所去喜欢城市的最小距离

     1 #include<cstdio>
     2 #include<cmath>
     3 #include<cstring>
     4 const int qq=1000+10;
     5 const int MAX=1e7;
     6 int s[qq],e[qq];
     7 int dist[qq];
     8 int vis[qq],tar[qq];
     9 int city[qq][qq];
    10 int t,a,b;
    11 void Dijkstra()
    12 {
    13     int poor=MAX;
    14     for(int l=1;l<=a;++l){
    15         int tot=MAX;
    16         for(int i=1;i<qq;++i){
    17             vis[i]=0;
    18             dist[i]=city[s[l]][i];
    19         }
    20         vis[s[l]]=1;
    21         for(int i=1;i<qq;++i){
    22             int minx=MAX;
    23             int u=s[l];
    24             for(int j=1;j<qq;++j)
    25                 if(!vis[j] && dist[j] < minx)
    26                     minx=dist[u=j];
    27             if(minx==MAX)    break;
    28             vis[u]=1;
    29             if(tar[u]!=0){
    30                 tot=dist[u];
    31                 break;
    32             }
    33             for(int j=1;j<qq;++j)
    34                 if(!vis[j] && city[u][j] < MAX)
    35                     if(dist[u]+city[u][j]<dist[j])
    36                         dist[j] = dist[u] + city[u][j];        
    37         }
    38         if(tot<poor)
    39             poor=tot;
    40     }
    41     printf("%d
    ",poor);
    42 }
    43 int main()
    44 {
    45     while(scanf("%d %d %d",&t,&a,&b)!=EOF){
    46         for(int j,i=1;i<qq;++i)
    47             for(j=1;j<qq;++j)
    48                 city[i][j]=MAX;
    49         for(int i=1;i<=t;++i){
    50             int x,y,cost;
    51             scanf("%d %d %d",&x,&y,&cost);
    52             if(cost<city[x][y])
    53                 city[x][y]=city[y][x]=cost;
    54         }
    55         for(int i=1;i<=a;++i)
    56             scanf("%d",&s[i]);
    57         memset(tar,0,sizeof(tar));
    58         for(int i=1;i<=b;++i){
    59             int ans;scanf("%d",&ans);
    60             tar[ans]=1;
    61         }
    62         Dijkstra();
    63     }
    64 }
  • 相关阅读:
    JVM运行参数优化详细教程
    idea 代码热启动配置方法
    Spring MVC拦截器完整代码示例
    Spring MVC异常处理代码完整实例
    Python3基础语法(20190617)
    Java代码生成器Easy Code
    Mybatis @Many注解一对多关联映射
    Mybatis @One注解使用
    Mybatis @ResultMap复用@Result
    Mybatis @Result注解的使用案例
  • 原文地址:https://www.cnblogs.com/sasuke-/p/5225841.html
Copyright © 2011-2022 走看看