zoukankan      html  css  js  c++  java
  • hdu 5137 How Many Maos Does the Guanxi Worth

    题意:给你N个点和m条边的无向图,然后让你求出依次删除2-n-1号的点之后的到达N点最短路的最大值,如果删除某个点之后,不能到达N点,就输出Inf,。

    思路:枚举删除的点,然后SPFA就可以求最短路,然后求出最大值就可以。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <queue>
     4 #include <algorithm>
     5 using namespace std;
     6 const int inf=1<<20;
     7 
     8 int n,m;
     9 int g[40][40];
    10 bool vis[40];
    11 int dis[40];
    12 bool vis1[40];
    13 int cnt[1000];
    14 
    15 
    16 void spfa(int src,int x)
    17 {
    18     memset(cnt,0,sizeof(cnt));
    19     memset(vis1,false,sizeof(vis1));
    20     for(int i=1; i<=n; i++) dis[i]=inf;
    21     dis[src]=0;
    22     vis1[src]=true;
    23     queue<int>q;
    24     q.push(src);
    25     while(!q.empty())
    26     {
    27         int u=q.front();
    28         q.pop();
    29         vis1[u]=false;
    30         for(int i=1; i<=n; i++)
    31         {
    32             if(g[u][i]&&i!=x)
    33             {
    34                 if(dis[i]>dis[u]+g[u][i])
    35                 {
    36                     dis[i]=dis[u]+g[u][i];
    37                     if(!vis1[i])
    38                     {
    39                         q.push(i);
    40                         vis1[i]=true;
    41                     }
    42                 }
    43             }
    44         }
    45     }
    46 }
    47 int main()
    48 {
    49     while(scanf("%d%d",&n,&m)!=EOF)
    50     {
    51         if(n==0&&m==0) break;
    52         memset(g,0,sizeof(g));
    53         for(int i=1; i<=m; i++)
    54         {
    55             int a,b,c;
    56             scanf("%d%d%d",&a,&b,&c);
    57             g[a][b]=g[b][a]=c;
    58         }
    59         int ans=0;
    60         bool flag=false;
    61         for(int i=2; i<n; i++)
    62         {
    63             spfa(1,i);
    64             if(dis[n]==inf) flag=true;
    65             ans=max(ans,dis[n]);
    66         }
    67         if(flag) printf("Inf
    ");
    68         else
    69         printf("%d
    ",ans);
    70     }
    71     return 0;
    72 }
    View Code
  • 相关阅读:
    sublime 设置侧边栏颜色
    laravel 连接mongodb
    PHP empty(),isset()与is_null()的实例测试
    ubuntu 14.04 64位安装 深度截图
    ubuntu 14.04 64位安装 lightworks (解决libtiff4依赖)
    ubuntu LAMP 配置
    一个查询大学英语四六级的类
    jstree 权限树 简单教程
    对接ebay,订单系统开发
    常用的PHP判断 检测 函数.
  • 原文地址:https://www.cnblogs.com/fanminghui/p/4226980.html
Copyright © 2011-2022 走看看