本文共 1013 字,大约阅读时间需要 3 分钟。
题目:给出几个国家,并给出每个国家之间的汇率,求这几个国家构成的图中所形成的环中,问是否存在套汇的可能,即自身汇率大于1
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 35 9 #define M 100010 map mp; //map 映射 11 struct Edge12 {13 int u;14 int v;15 double w;16 }edge[M]; // 结构体存边 17 double dis[N]; //源点i到各点的最长路径,包括到他本身 18 int n,m;19 bool Bellman_Ford(int st) // 跑一遍BF 20 {21 for(int i=0; i dis[edge[j].v] )29 dis[edge[j].v] = dis[edge[j].u]*edge[j].w;30 }31 }32 if(dis[st] > 1.0) return 1; // 存在套汇,return 1 33 return 0;34 }35 36 int main()37 {38 int cas = 1;39 while(scanf("%d",&n)&&n)40 {41 string s;42 for(int i=0; i >s;45 mp[s] = i;46 }47 scanf("%d",&m);48 string s1,s2;49 double w;50 for(int i=0; i >s1>>w>>s2;53 int u = mp[s1] ;54 int v = mp[s2] ;55 edge[i].u = u ; edge[i].v = v ; edge[i].w = w;56 }57 int flag = 0;58 for(int i=0; i
转载于:https://www.cnblogs.com/ar940507/p/3240492.html