poj2240 水题 熟悉map用法及string用法 Frolyd算法
来源:互联网 发布:个人网络循环贷款 编辑:程序博客网 时间:2024/05/19 17:24
#include <stdio.h>#include <iostream>#include <string> #include <map>using namespace std;int main(){ int n,m,caseNum; string s,t; double r; double array[30][30]; map <string, int>mp; while(cin>>n&&n){ caseNum++; int cnt=0;//币的种类 for(int i=0;i<n;i++) { cin>>s; mp[s]=cnt; cnt++; } cin>>m; memset(array,1,sizeof(array)); for(int i=0;i<m;i++){ cin>>s>>r>>t; array[mp[s]][mp[t]]=r; } for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) {double t=array[i][k]*array[k][j]; if(array[i][j]<t) array[i][j]=t; } bool flag=false; for(int i=0;i<n;i++) if(array[i][i]>1) {flag=true;break; } if(flag) cout<<"Case "<<caseNum<<": Yes"<<endl; else cout<<"Case "<<caseNum<<": No"<<endl; } system("pause"); return 0;}