[kuangbin带你飞]专题四 最短路练习
[kuangbin帶你飛]專題四 最短路練習(xí)
專題鏈接
推薦關(guān)于圖論的刷題
A - Til the Cows Come Home poj-2387
題意:
有n個(gè)點(diǎn),t條路,給出每條路的長度,問怎么走能使得從起點(diǎn)走到終點(diǎn)路路程最短。
難度:
2顆星,單源最短路徑,dijkstra模板
題解:
兩種解法見此
B - Frogger poj-2253
題意:
給n個(gè)點(diǎn)的坐標(biāo),問如何走使得最長邊最短。
也就是給了點(diǎn)圖,找最小生成樹的最大邊。
C - Heavy Transportation poj-1797
題意:
有n個(gè)點(diǎn)m條邊,要構(gòu)建一個(gè)經(jīng)過一個(gè)能從節(jié)點(diǎn)1到節(jié)點(diǎn)n的最大路(樹),使的最小邊最大,建最大生成樹。
題解:
(一)用krustral 的做最大生成樹
D - Silver Cow Party
題意:
n頭牛,分別在n塊田野上,他們都要到X這塊田野上,給出的邊是有向邊,每條邊會(huì)花費(fèi)牛t的時(shí)間,問花費(fèi)時(shí)間最長的牛最少要花費(fèi)多少。
題解:
(一)
用1次dijkstra,以x為起點(diǎn),找出x到各個(gè)點(diǎn)的最短時(shí)間,得到每頭?;厝サ臅r(shí)間。
再用n-1次dijkstra,分別各個(gè)點(diǎn)為起點(diǎn),找出各個(gè)點(diǎn)到x的最短時(shí)間,得到每頭牛去的最短時(shí)間。
這樣就可以得到每頭牛的來回時(shí)間。
(二)
正向建圖,得到以x為起點(diǎn),到達(dá)各個(gè)點(diǎn)的最短時(shí)間,即回去的時(shí)間。
方向建圖,得到以各個(gè)點(diǎn)為起點(diǎn),到達(dá)x的最短時(shí)間,即前去的時(shí)間。
E.Currency Exchange poj-1860
題意:
有n種貨幣,m種交易方式,每次交換都有一定的比率,還要付手續(xù)費(fèi),問最終經(jīng)過交換能否賺錢。
題解:
bellon判斷存在正權(quán)環(huán)否
經(jīng)過交換回到起點(diǎn),起點(diǎn)值變大,那就是走一個(gè)問存在一個(gè)正環(huán)否。用Bellon 算法。
F.Wormholes poj- 3259
題解:
判斷是否純正負(fù)權(quán)環(huán)
感覺測評機(jī)很有問題,不想做可以跳
E.MPI Maelstrom poj-1502
題解:
dijkstra裸題,只是題難讀而已。
??: H - Cow Contest
?
難度:
3顆星
簡單卻是一道好題,將最短路的應(yīng)用延伸為傳遞閉包 傳遞閉包簡單理解
題意:
n頭牛兩兩對決m場,問從這些場次中確定排行的牛有幾頭。
題解:
排名確定,也就是說這頭牛與其他所有牛的關(guān)系確定了,與其他牛的關(guān)系要么是被擊敗了,要么是擊敗其他牛了。
轉(zhuǎn)化成路的思想,也就 a與其他牛i,a能到i或者i能到a。如果有1頭牛與a的關(guān)系不明確,也就不能知道這頭牛的排名了。
I - Arbitrage
題意:
貨幣交易轉(zhuǎn)換。
問是否存在一種情況,當(dāng)前有一種1單元的1種貨幣,經(jīng)過轉(zhuǎn)換之后,又重新回到了得到了這種貨幣,而金額上升。
題解:
poj 2240 floyd題解
J - Invitation Cards
題意:
n-1個(gè)人從1號(hào)點(diǎn)出發(fā),到剩余n-1個(gè)宣傳點(diǎn),然后再回到1號(hào)點(diǎn)匯報(bào)結(jié)果,求所有人往返路徑和的最小值
題解:
正向+反向dijkstra
K - Candies
題意:
有n個(gè)人,m組數(shù)a,b,c,表示b不可以比a多 c個(gè),問最終分配,使得序號(hào)1的與序號(hào)n的差距數(shù)最大為多少。
題解:
最短路
雖然想要讓1和n的差距最大,也就是路程最遠(yuǎn),可是給定的路徑全部要滿足,那也就是要滿足小的,也就是每次都挑最小的走,那也就是按最短路走到達(dá)n。
L -Subway poj-2502
題意:
走路10km/h,坐公交車40km/h
給出家和學(xué)校的位置,又給出幾條公交車會(huì)停靠的站點(diǎn)。問最少用幾分鐘能到學(xué)校。
題解:
建圖麻煩的dijkstra。
輸出的是時(shí)候要這樣處理。
int ans=(int)(best[2]+0.5);M -昂貴的聘禮 poj-1062
題意:
交換物品,使得最終用最少的錢換到目標(biāo)物,且交換的對象之間的階級(jí)不能超過m。
題解:
1號(hào)能被2號(hào)到,又能被3號(hào)換到,2號(hào)又能被其他換到,那就是一個(gè)源點(diǎn)出發(fā),求最短路徑。
代碼見此
wa點(diǎn):
與之交易的人 范圍不能超過m,但是酋長不被要求在哪個(gè)范圍里。
Tram poj-1847
題意:
拿樣例說
3 2 1 2 2 3 2 3 1 2 1 2有3個(gè)路口,司機(jī)當(dāng)前在2號(hào)路口,想要去1號(hào)路口。
第2行表示,如果司機(jī)在1號(hào)路口,有2個(gè)選擇,0次操作去2號(hào)路口,1次操作去3號(hào)路口。剩下2行也是此意思。
問司機(jī)的最少操作數(shù)是多少。
題解:
典型的最短路。
Extended Traffic LightOJ - 1074
題解:
spfa
有負(fù)權(quán)邊,求最短路。
if(change[a]==n||best[a]<3||best[a]==inf)printf("?\n");3種情況打印?-----
1.change[a]==n 有負(fù)環(huán),這時(shí)不存在最短路。
2.best[a]?? gives total earning less than 3
3.best[a]=inf 不可到達(dá)
總結(jié)
以上是生活随笔為你收集整理的[kuangbin带你飞]专题四 最短路练习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 合并多个DataTable统计数据
- 下一篇: 节日才需要快乐吗?