⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usaco_comehome.cpp

📁 usaco自己做的1到5章的代码
💻 CPP
字号:
/*
ID: wangyuc2
PROG: comehome
LANG: C++
*/
#include <fstream>
#include <iostream>
#include <cstring>
#include <memory>
#include <queue>
#define MAXLENGTH 2000000
using namespace std;
ifstream fin("comehome.in");
ofstream fout("comehome.out");

int main()
{
    int i,j,k,max,n,min;
    char pas1,pas2;
    bool cow_in[26];
    int a[52][52];
    for(i=0;i<52;i++)
      for(j=0;j<52;j++)
	  {if(i == j) a[i][j]=0;
	  else a[i][j]=MAXLENGTH;
	  }   
    memset(cow_in,false,sizeof(cow_in));
    fin>>n;
    max=MAXLENGTH;
    for(i=0;i<n;i++)
    {
       fin>>pas1>>pas2>>k;
	   if(pas1 == pas2) continue;
       if(pas1 <= 'Z' && pas1>='A') {pas1-=65;cow_in[pas1]=true;}
       else pas1=pas1-97+26;
       if(pas2 <= 'Z' && pas2>='A') {pas2-=65;cow_in[pas2]=true;}
       else pas2=pas2-97+26;
	   
       if(k<a[pas1][pas2]) a[pas1][pas2]=k;
       if(k<a[pas2][pas1]) a[pas2][pas1]=k;
    }
	cow_in[25]=false;
    for(k=0;k<52;k++)
      for(i=0;i<52;i++)
      { 
	     if(i == j) continue;
        for(j=0;j<52;j++)
        {
			if(i==k || j==k ) continue;
			 if(a[i][j]>a[i][k]+a[k][j]) 
			 {a[i][j]=a[i][k]+a[k][j];a[j][i]=a[i][j];}
         }
      }
      min=0;
    for(i=1;i<25;i++)
      if(cow_in[i] && a[i][25]<a[min][25]) min=i;
    fout<<char(min+65)<<' '<<a[min][25]<<endl;
   // system("PAUSE");
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -