Arbitrage(最短路變形)

2021-09-25 21:00:22 字數 1696 閱讀 7911

能否套利

sample input

3usdollar

britishpound

frenchfranc

3usdollar 0.5 britishpound

britishpound 10.0 frenchfranc

frenchfranc 0.21 usdollar

3usdollar

britishpound

frenchfranc

6usdollar 0.5 britishpound

usdollar 4.9 frenchfranc

britishpound 10.0 frenchfranc

britishpound 1.99 usdollar

frenchfranc 0.09 britishpound

frenchfranc 0.19 usdollar

0sample output

case 1: yes

case 2: no

題意:

給你幾種貨幣,再給出來兩種貨幣之間的匯率(單向的),問你有有可能從中套利。

做法:

我是用map容器給幾種貨幣進行編號,編號完成就可以視之為不同的點了。然後跑一次佛洛伊達,這個時候用的是乘法。並且點到它本身設為1,初始化時令它到所有點的距離都為0。最後再查詢一次有沒有那個點到他本身的距離大雨1,如果有就可以套得利潤。

**

#include

#include

#include

//使用map容器時不可或缺

#include

using namespace std;

mapint> mp;

char a[

150]

,b[150

],c[

150]

;int u[50]

,v[50];

intmain()

for(i=

1; i<=n; i++

)for

(j=1

; j<=n; j++)if

(i==j)e[i]

[j]=1;

else e[i]

[j]=0;

//如何初始化很重要,除了到本身,其餘從零開始

scanf

("%d"

,&m)

;for

(i=1

; i<=m; i++

)for

(k=1

; k<=n; k++

)for

(i=1

; i<=n; i++

)for

(j=1

; j<=n; j++

)int flag=0;

for(k=

1; k<=n; k++)}

printf

("case %d: "

,cas++);

if(flag)

printf

("yes\n");

else

printf

("no\n");

}return0;

}

變形最短路

有沒有感覺神似 acmer的出行計畫 我們知道dijkstra是貪心策略的dp嘛,貪心的是距離 然而有時除了距離還有別的限制,在這裡是油。這時候花費最小不一定是最優,還要考慮剩餘的油 dp i,j 表示到i點時剩餘j油時最少的花費 在乙個點可以選擇向下走 油夠的情況 或者加1份油 多次加乙份油就相當...

dij最短路 變形

時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 作為乙個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連線城市的快速道路。每個城市的救援隊數量和每一條連線兩個城市的快速道路長度都標在地圖上。...

最短路 記錄路徑 變形!!

時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 作為乙個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連線城市的快速道路。每個城市的救援隊數量和每一條連線兩個城市的快速道路長度都標在地圖上。...