POJ2240匯率轉化計算

2021-08-04 09:33:41 字數 1067 閱讀 8157

/*題意:幾種不同的物品可以互相交換,但是交換的數量不同

比如:1 單位 us 換 0.5 單位 british

1 單位 british 換 10.0 單位 french

1 單位 french 換 0.21 單位 us

現在我們可以用 1單位us 換 0.5 單位british;

再用這 0.5單位british 換 5 單位french

再用 5單位french 換 1.05 單位us

那麼一開始的1單位的us現在就變成了1.05單位us;

獲利0.05us

題目給出所有可供交換的物品和兩種可以交換的物品之間的交換**

問是否可以通過交換獲利

*//*題解:先用map映照把不同的物品編號,再存入鄰接矩陣

鄰接矩陣必須先初始化

然後用floyd求出各個物品可以通過交換得到的最大值,

再找出每個物品自身的交換後的價值,如果大於原來的價值就輸出yes;

否則輸出no

*/#include

#include

#include

#include

#include

using

namespace

std;

intmain

() for(int i=1; i<=n; i++)

}scanf("%d",&t);

for(int i=0; iscanf("%s %lf %s",&str1,&x,&str2); //儲存路徑

mp[m[str1]][m[str2]] = x;

}//floyd

for(int i=1; i<=n; i++)}}

}printf("case %d: ",r++);

flag = 0;

for(int i=1; i<=n; i++)

}if(!flag)

printf("no\n");

}}

Floyd演算法的應用 POJ 2240

該題大意是套匯問題,貨幣根據匯率轉換來套取多餘的錢數,由於是各個貨幣兩兩轉換,即由floyd判環應用變形則可解決問題。floyd演算法用於解決任意兩個節點之間的最短距離,判斷是否成環等,其實質為動態規劃。1 floyd演算法的應用 2 include 3 include 4 include 5usi...

poj2240 類似負權迴路

題意 給出一些不同型別的貨幣和貨幣之間兌換的比例,求能否實現從一種硬幣開始到自身結束後,實現盈利 分析 1.一開始遇到這個題的時候,我首先想到的是dfs,在遍歷的過程中如果遇到環的話進行判斷,得出結果。但是這樣考慮是不正確的。比如 a 1.0 b b 1.0 c b 5.0 d c 0.1 d d ...

POJ 2240 Arbitrage解題報告

題目大意 乙個圖,從乙個點到另個點,權值會乘乙個數,問是否存在正權環。然後發現乙個問題,用bellman ford的時候,判斷是否存在負權迴路只需要列舉一次所有的邊,看是否還能鬆弛就可以了!include include include include define n 1000 using nam...