zoukankan      html  css  js  c++  java
  • 【lightoj-1002】Country Roads(dijkstra变形)

    light1002:传送门

    【题目大意】

    n个点m条边,给一个源点,找出源点到其他点的‘最短路’

    定义:找出每条通路中最大的cost,这些最大的cost中找出一个最小的即为‘最短路’,dijkstra变形。dis[i]为s->i的‘最短路’

     1 #include<bits/stdc++.h>
     2 int mp[505][505],dis[505],vis[505];
     3 using namespace std;
     4 int n;
     5 void dij(int s)
     6 {
     7     int i,j,k;
     8     for(i=0; i<n; i++)
     9     {
    10         dis[i]=mp[s][i];
    11         vis[i]=0;
    12     }
    13     vis[s]=1;
    14     for(j=1; j<n; j++)
    15     {
    16         int min1=1e9;
    17         for(i=0; i<n; i++)
    18         {
    19             if(min1>dis[i]&&!vis[i])
    20             {
    21                 min1=dis[i];
    22                 k=i;
    23             }
    24         }
    25         vis[k]=1;
    26         for(i=0; i<n; i++)
    27         {
    28             if(!vis[i]&&mp[k][i]<1e9)
    29             {
    30                 dis[i]=min(dis[i],max(dis[k],mp[k][i]));
    31             }
    32         }
    33     }
    34 }
    35 int main()
    36 {
    37     int t,u,v,w,i,j;
    38     cin>>t;
    39     for(int co=1; co<=t; co++)
    40     {
    41         int m;
    42         scanf("%d%d",&n,&m);
    43         for(i=0; i<n; i++)
    44             for(j=0; j<n; j++)
    45             {
    46                 if(i==j)
    47                     mp[i][j]=0;
    48                 else
    49                     mp[i][j]=1e9;
    50             }
    51         while(m--)
    52         {
    53             scanf("%d%d%d",&u,&v,&w);
    54             if(mp[u][v]>w)
    55                 mp[u][v]=mp[v][u]=w;
    56         }
    57         int s;
    58         cin>>s;
    59         dij(s);
    60         printf("Case %d:
    ",co);
    61         for(i=0; i<n; i++)
    62         {
    63             if(dis[i]==1e9)
    64                 puts("Impossible");
    65             else
    66                 printf("%d
    ",dis[i]);
    67         }
    68     }
    69     return 0;
    70 }
  • 相关阅读:
    依赖倒置原则
    接口声明
    java泛型
    RandomAccessFile
    InputStreamReader/OutputStreamWriter乱码问题解决
    InputStreamReader和OutputStreamWriter
    Android开发UI之Notification
    Android开发UI之Toast的使用
    Android开发之PagerAdapter
    Android开发UI之ViewPager及PagerAdapter
  • 原文地址:https://www.cnblogs.com/lesroad/p/8437899.html
Copyright © 2011-2022 走看看