【floyd】 poj 2240

时间:2022-01-20 04:09:26
#include <iostream>
#include <map>
#include <string>
#include <memory.h>

using namespace std;
;
int n;      //货币种类
int m;      //兑换方式
mapSTL;     //建立一个字符串与整数一一对应的容器STL,以便利用邻接矩阵存储数据
double rate;
],str1[],str2[];
][];
int i,j,k;
void floyd(void)
{
 ;k<=n;k++)
  ;i<=n;i++)
   ;j<=n;j++)
    if(dis[i][j] < dis[i][k] * dis[k][j])       //变形的最大路径,变"+"为"*"
     dis[i][j] = dis[i][k] * dis[k][j];
 return;
}
int main()
{
// freopen("in.txt","r",stdin);
 ;
 while(cases)
 {
  memset(dis,inf,sizeof(dis));
  cin>>n;
  if(!n)break;
  ;i<=n;i++)
  {
   cin>>str;
   STL[str]=i;          //将输入的货币从1到n依次编号
   dis[i][i]=;        //到自身的转换率默认为1,但通过floyd可能会被改变
  }
  cin>>m;
  ;i<=m;i++)
  {
   cin >> str1 >> rate >> str2;
   dis[STL[str1]][STL[str2]]=rate;      //构造图
  }
  floyd();
  int flag=false;
  ;i<=n;i++)
   )
   {
    flag=true;
    break;
   }
   if(flag)
   cout<<"Case "<<cases++<<": Yes"<<endl;
  else
   cout<<"Case "<<cases++<<": No"<<endl;
 }
 ;
}