hdoj 1596(floyd)(c++过啦)

来源:互联网 发布:阿猫阿狗 知乎 编辑:程序博客网 时间:2024/06/16 16:05
#include<iostream>#include<stdio.h>using namespace std;#define MAX 1005//#define MAX 10double graph[MAX][MAX];double Dis[MAX][MAX];int n;int Q;int main(){//freopen("in.txt","r",stdin);int i,j,k;while(scanf("%d",&n)!=EOF){//初始化for(i=0;i<n;i++){for(j=0;j<n;j++){cin>>graph[i][j];}}//初始化Disfor(i=0;i<n;i++){for(j=0;j<n;j++){Dis[i][j]=graph[i][j];}}//Floyd算法for(k=0;k<n;k++){for(i=0;i<n;i++){for(j=0;j<n;j++){if(Dis[i][k]*Dis[k][j]>Dis[i][j]){Dis[i][j]=Dis[i][k]*Dis[k][j];}}}}//输出scanf("%d",&Q);int start,end;for(i=0;i<Q;i++){scanf("%d %d",&start,&end);if(Dis[start-1][end-1]==0)cout<<"What a pity!"<<endl;else{printf("%0.3f\n",Dis[start-1][end-1]);}}}return 0;}

原创粉丝点击