思路:spfa求出每個點到其餘頂點的最短路(最短路上的每個點的val都小於等於起點的val),然後又二維陣列dp來儲存,最後詢問的時候就是列舉中間點i了,min;
1 #include2 #include3 #include4 #include5 #include6 #include7view codeusing
namespace
std;
8#define inf 1<<30910
struct
edge
13 edge(int vv,int
ww):v(vv),w(ww){}
14};
1516 vector>g;
17int cost[111],dist[111],dp[111][111
];18
bool mark[111
];19
intn,m,q;
2021
void spfa(int
s)2240}
41}42}
43for(int i=1;i<=n;i++)dp[s][i]=dist[i];44}
4546
47int
main()
4860
for(int i=1;i<=n;i++)
61for(int j=1;j<=n;j++)dp[i][j]=inf;
62for(int i=1;i<=n;i++)spfa(i);
63if(t)puts(""
);64 printf("
case #%d\n
",++t);
65while(q--)
72if(ans==inf)ans=-1
;73 printf("
%d\n
",ans);74}
75}76return0;
77}7879
變形最短路
有沒有感覺神似 acmer的出行計畫 我們知道dijkstra是貪心策略的dp嘛,貪心的是距離 然而有時除了距離還有別的限制,在這裡是油。這時候花費最小不一定是最優,還要考慮剩餘的油 dp i,j 表示到i點時剩餘j油時最少的花費 在乙個點可以選擇向下走 油夠的情況 或者加1份油 多次加乙份油就相當...
dij最短路 變形
時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 作為乙個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連線城市的快速道路。每個城市的救援隊數量和每一條連線兩個城市的快速道路長度都標在地圖上。...
Arbitrage(最短路變形)
能否套利 sample input 3usdollar britishpound frenchfranc 3usdollar 0.5 britishpound britishpound 10.0 frenchfranc frenchfranc 0.21 usdollar 3usdollar brit...