toj2033 floyd算法 模板

来源:互联网 发布:宇宙战舰大和号 知乎 编辑:程序博客网 时间:2024/06/07 03:02
//toj2033 floyd#include<iostream>#define MAX 21using namespace std;int i,j;int main(){    int t=1,m,n,i,j,k;    int map[MAX][MAX];    while(cin>>n)    {        for(i=1;i<=20;i++)           for(j=1;j<=20;j++)               map[i][j]=19; //init        while(n--)        {           cin>>m;           map[1][m]=map[m][1]=1;                  }        for(i=2;i<20;i++)//第二个之后的         {           cin>>n;           while(n--)           {               cin>>m;               map[i][m]=map[m][i]=1;                      }                         }        for(k=1; k<=20; k++)     // Floyd算法核心代码。            for(i=1; i<=20; i++)                for(j=1; j<=20; j++)                    if(map[i][k] + map[k][j] < map[i][j])                        map[i][j] = map[i][k] + map[k][j];        cin>>n;        cout << "Test Set #" << t++ << endl;        while(n--){            cin >> i >> j;            cout << i << " to " << j << ": " << map[i][j] << endl;        }        cout << endl;  // 输出格式要注意。                              }    return 0;   }

原创粉丝点击