首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

10048Audiophobia-美题

2012-10-17 
10048Audiophobia--好题#includecstdlib#includeiostream#includesstream#includecstdio#include

10048Audiophobia--好题

#include<cstdlib>#include<iostream>#include<sstream>#include<cstdio>#include<cmath>#include<cstring>#include <algorithm>#include<vector>#include<set>#include<queue>#define LL long long#define inf 800000#define E 1e-9#define M 100#define N 105using namespace std;int n,m,c,s,q;int ma[N][N];void floyd(){    for(int k=1; k<=c; k++)        for(int i=1; i<=c; i++)//            if(i!=k)            {                for(int j=1; j<=c; j++)//                    if(j!=i&&j!=k)                    {                        if(ma[i][k]<ma[i][j]&&ma[k][j]<ma[i][j])                            ma[i][j]=max(ma[i][k],ma[k][j]);                    }            }}int main(){#ifndef ONLINE_JUDGE    freopen("ex.in","r",stdin);#endif    int ncase=0;    while(scanf("%d%d%d",&c,&s,&q)!=EOF)    {        if(!c&&!s&&!q)            break;            if(ncase)            printf("\n");            printf("Case #%d\n",++ncase);        for(int i=1; i<=c; ++i)            for(int j=1; j<=c; ++j)                ma[i][j]=inf;        int c1,c2,w;        for (int i=0; i<s; i++)        {            scanf("%d%d%d",&c1,&c2,&w);            ma[c1][c2]=ma[c2][c1]=w;        }        floyd();        for(int i=0;i<q;i++)        {            scanf("%d%d",&c1,&c2);            if(ma[c1][c2]<inf)            printf("%d\n",ma[c1][c2]);            else            printf("no path\n");        }    }    return 0;}

热点排行