• 1210. Kind Spirits(spfa)


    1210

    简单模版题 敲个spfa还得瞟下模版。。

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<stdlib.h>
     6 #include<vector>
     7 #include<queue>
     8 using namespace std;
     9 vector<int>ed[910];
    10 #define INF 0xfffffff
    11 int dis[910];
    12 int vis[910],g,o[910][910];
    13 int spfa(int e)
    14 {
    15     memset(vis,0,sizeof(vis));
    16     queue<int>q;
    17     for(int i = 1 ; i <= g ; i++)
    18     dis[i] = INF;
    19     dis[1] = 0;
    20     vis[1] = 1;
    21     q.push(1);
    22     while(!q.empty())
    23     {
    24         int u = q.front();
    25         q.pop();
    26         vis[u] = 0;
    27         for(int i = 0 ; i < (int)ed[u].size() ;i++)
    28         {
    29             int v = ed[u][i];
    30             if(dis[v]>dis[u]+o[u][v])
    31             {
    32                 dis[v] = dis[u]+o[u][v];
    33                 if(!vis[v])
    34                 {
    35                     vis[v] = 1;
    36                     q.push(v);
    37                 }
    38             }
    39         }
    40     }
    41     return dis[e];
    42 }
    43 int main()
    44 {
    45     int i,j,n,k,m,u,t;
    46     char c[5];
    47     cin>>n;
    48     g = 1;t=0;
    49     for(i = 1; i <= 901  ;i++)
    50         for(j = 1; j <= 901 ; j++)
    51         if(i!=j)
    52         o[i][j] = INF;
    53     for(i = 1; i <= n ;i ++)
    54     {
    55         cin>>m;
    56         for(j =1; j <= m ; j++)
    57         {
    58             g++;
    59             while(cin>>k)
    60             {
    61                 if(k==0)
    62                 break;
    63                 cin>>u;
    64                 o[k+t][g] = u;
    65                 ed[k+t].push_back(g);
    66             }
    67         }
    68         if(i!=n)
    69         cin>>c;
    70         t = g-m;
    71     }
    72     int minz = INF;
    73     for(i = t+1 ; i <= g ; i++)
    74     minz = min(minz,spfa(i));
    75     printf("%d
    ",minz);
    76     return 0;
    77 }
    View Code
  • 相关阅读:
    Tomcat 环境搭建
    Samba 3.6.9 安装、管理
    FTP vsftp 安装、管理
    FTP pure-ftpd 安装、管理
    NFS 安装、管理
    sql
    mysql Encryption and Compression Functions
    jQuery UI Layout Plug-in
    mysql存储过程、函数和触发器的创建 [转]
    bootstrap前端开发框架,未来发展趋势
  • 原文地址:https://www.cnblogs.com/shangyu/p/3351699.html
Copyright © 2020-2023  润新知