【神题】URAL 1575 Yekaterinburg Subway 2

来源:互联网 发布:视频剪辑合成配音软件 编辑:程序博客网 时间:2024/06/13 21:49

点击打开链接

神题啊啊啊啊啊啊啊啊啊

看图建最短路

#include <cstdio>#include <cstring>#include <cstdlib>#include <string>#include <iostream>#include <algorithm>#include <sstream>#include <cmath>using namespace std;#include <queue>#include <stack>#include <set>#include <vector>#include <deque>#include <map>#define cler(arr, val)    memset(arr, val, sizeof(arr))typedef long long  LL;const int MAXN = 120000;const int MAXM = 140000;const int INF = 0x3f3f3f3f;const int mod = 1000000007;#define lson l,m,rt<<1#define rson m+1n 0;,r,rt<<1|1char s[71][40]={    "7_klyuchey",    "Sortirovochnaya",    "China_town",    "Zarechny",    "Zelyony_ostrov",    "Tatishchevskaya",    "Verh_Isetskaya",    "Kommunarov_square",    "City",    "Zvezda",    "I_Pyatiletki_square",    "Pobedy",    "Bakinskih_Komissarov",    "Prospekt_Kosmonavtov",    "Uralmash",    "Mashinostroiteley",    "Taganskaya",    "Elmash",    "Turbinnaya",    "Kalinovskaya",    "Italyanskaya",    "Ozyornaya",    "Shefskaya",    "Komsomolskaya",    "Vilonovskaya",    "Pionerskaya",    "Uralskaya",    "Dinamo",    "Shevchenko",    "Gagarinskaya",    "Moskovskaya",    "Vostochnaya",    "Vtuzgorodok",    "Kamennye_palatki",    "University",    "1905_year_square",    "Teatralnaya",    "Kuybyshevskaya",    "Geologicheskaya",    "Posadskaya",    "Central_stadium",    "Kraulya",    "Metallurgov",    "MEGA",    "Volgogradskaya",    "Yugo_zapadnaya",    "Akademicheskaya",    "Aviatsionnaya",    "Dvorets_sporta",    "Voennaya",    "Sovhoznaya",    "Bazhovskaya",    "Chkalovskaya",    "Botanicheskaya",    "Samolyotnaya",    "Vtorchermet",    "Keramicheskaya",    "Himmash",    "Nizhne_Isetskaya",    "Uktusskie_Gory",    "Shcherbakovskaya",    "Parkovaya",    "Mayakovskaya",    "Oborony_square",    "Sibirskaya",    "Siniye_kamni",    "Lechebnaya",    "Varshavskaya",    "Kompressornaya",    "Koltsovo"};int mp[88][88];void init(){    for(int i=0; i<=70; i++)    {        for(int j=0; j<=70; j++)            mp[i][j]=INF;        mp[i][i]=0;    }    mp[1][2]=mp[2][1]=1;    mp[3][2]=mp[2][3]=1;    mp[3][4]=mp[4][3]=1;    mp[9][4]=mp[4][9]=1;    mp[5][6]=mp[6][5]=1;    mp[7][6]=mp[6][7]=1;    mp[7][8]=mp[8][7]=1;    mp[9][8]=mp[8][9]=1;    mp[9][27]=mp[27][9]=1;    mp[8][31]=mp[31][8]=1;    mp[8][36]=mp[36][8]=1;    mp[12][11]=mp[11][12]=1;    mp[10][11]=mp[11][10]=1;    mp[10][27]=mp[27][10]=1;    mp[28][27]=mp[27][28]=1;    mp[26][27]=mp[27][26]=1;    mp[29][27]=mp[27][29]=1;    mp[26][29]=mp[29][26]=1;    mp[26][19]=mp[19][26]=1;    mp[18][19]=mp[19][18]=1;    mp[18][17]=mp[17][18]=1;    mp[13][14]=mp[14][13]=1;    mp[15][14]=mp[14][15]=1;    mp[15][16]=mp[16][15]=1;    mp[16][27]=mp[27][16]=1;    mp[26][30]=mp[30][26]=1;    mp[25][30]=mp[30][25]=1;    mp[24][30]=mp[30][24]=1;    mp[24][23]=mp[23][24]=1;    mp[22][23]=mp[23][22]=1;    mp[22][21]=mp[21][22]=1;    mp[21][20]=mp[20][21]=1;            mp[28][36]=mp[36][28]=1;    mp[29][36]=mp[36][29]=1;    mp[37][36]=mp[36][37]=1;    mp[31][36]=mp[36][31]=1;    mp[31][41]=mp[41][31]=1;        mp[42][41]=mp[41][42]=1;    mp[42][43]=mp[43][42]=1;    mp[44][43]=mp[43][44]=1;    mp[31][40]=mp[40][31]=1;    mp[45][40]=mp[40][45]=1;    mp[45][46]=mp[46][45]=1;    mp[47][46]=mp[46][47]=1;    mp[49][40]=mp[40][49]=1;    mp[49][39]=mp[39][49]=1;        mp[36][39]=mp[39][36]=1;    mp[36][38]=mp[38][36]=1;    mp[37][39]=mp[39][37]=1;    mp[38][39]=mp[39][38]=1;    mp[37][39]=mp[39][37]=1;    mp[37][29]=mp[29][37]=1;    mp[37][32]=mp[32][37]=1;    mp[33][32]=mp[32][33]=1;    mp[33][34]=mp[34][33]=1;    mp[35][34]=mp[34][35]=1;    mp[33][65]=mp[65][33]=1;    mp[38][64]=mp[64][38]=1;    mp[38][65]=mp[65][38]=1;    mp[66][65]=mp[65][66]=1;    mp[66][67]=mp[67][66]=1;    mp[68][67]=mp[67][68]=1;    mp[68][69]=mp[69][68]=1;    mp[70][69]=mp[69][70]=1;    mp[65][64]=mp[64][65]=1;    mp[39][52]=mp[52][39]=1;    mp[49][52]=mp[52][49]=1;    mp[49][48]=mp[48][49]=1;    mp[50][48]=mp[48][50]=1;    mp[50][51]=mp[51][50]=1;    mp[52][53]=mp[53][52]=1;    mp[52][64]=mp[64][52]=1;    mp[54][53]=mp[53][54]=1;    mp[54][55]=mp[55][54]=1;    mp[56][55]=mp[55][56]=1;    mp[56][57]=mp[57][56]=1;    mp[54][61]=mp[61][54]=1;    mp[54][62]=mp[62][54]=1;    mp[60][61]=mp[61][60]=1;    mp[63][62]=mp[62][63]=1;    mp[63][64]=mp[64][63]=1;    mp[60][59]=mp[59][60]=1;    mp[58][59]=mp[59][58]=1;    mp[38][32]=mp[32][38]=1;    mp[32][30]=mp[30][32]=1;    mp[40][39]=mp[39][40]=1;    mp[9][36]=mp[36][9]=1;        mp[52][64]=mp[64][52]=1;        mp[37][38]=mp[38][37]=1;    mp[37][30]=mp[30][37]=1;    mp[33][30]=mp[30][33]=1;    for(int k=1; k<=70; k++)        for(int i=1; i<=70; i++)            for(int j=1; j<=70; j++)                mp[i][j]=min(mp[i][j],mp[i][k]+mp[k][j]);}int main(){    init();    int n;    cin>>n;    while(n--)    {        int n1,n2;        string s1,s2;        cin>>s1>>s2;        for(int i=0; i<70; i++)        {            if(s1==s[i])                n1=i;            if(s2==s[i])                n2=i;        }        n1++;        n2++;        cout<<mp[n1][n2]<<endl;    }    return 0;}


0 0
原创粉丝点击