HDOJ-1847畅通工程续(Floyd)

来源:互联网 发布:网络星河 pdf 编辑:程序博客网 时间:2024/06/08 06:40

裸的算法:

#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;const int N=205;constint min(int x,int y){    return x<y?x:y;}void work(int n,int m){    int i,j,k,a,b,x,s,t;    int f[N][N];    memset(f,0x3F,sizeof(f));    for(i=1;i<=m;i++)    {        scanf("%d%d%d",&a,&b,&x);        if(x<f[a][b]) f[a][b]=f[b][a]=x;    }    for(i=0;i<n;i++) f[i][i]=0;    for(k=0;k<n;k++)        for(i=0;i<n;i++)            for(j=0;j<n;j++)                f[i][j]=min(f[i][j],f[i][k]+f[k][j]);    scanf("%d%d",&s,&t);    if(f[s][t]>200005) printf("-1\n");        else printf("%d\n",f[s][t]);}int main(){    int n,m;    while(scanf("%d%d",&n,&m)!=EOF)        work(n,m);    return 0;}


0 0
原创粉丝点击