P2731 騎馬修柵欄 (尤拉路徑)

2022-05-23 16:54:13 字數 801 閱讀 2837

【題目描述】

john是乙個與其他農民一樣懶的人。他討厭騎馬,因此從來不兩次經過乙個柵欄。你必須編乙個程式,讀入柵欄網路的描述,並計算出一條修柵欄的路徑,使每個柵欄都恰好被經過一次。john能從任何乙個頂點(即兩個柵欄的交點)開始騎馬,在任意乙個頂點結束。每乙個柵欄連線兩個頂點,頂點用1到500標號(雖然有的農場並沒有500個頂點)。乙個頂點上可連線任意多(>=1)個柵欄。兩頂點間可能有多個柵欄。所有柵欄都是連通的(也就是你可以從任意乙個柵欄到達另外的所有柵欄)。你的程式必須輸出騎馬的路徑(用路上依次經過的頂點號碼表示)。我們如果把輸出的路徑看成是乙個500進製的數,那麼當存在多組解的情況下,輸出500進製表示法中最小的乙個 (也就是輸出第一位較小的,如果還有多組解,輸出第二位較小的,等等)。輸入資料保證至少有乙個解。

【題目鏈結】

【演算法】

頂點其實就是圖裡面的點,柵欄就是邊,尤拉路徑模板題,注意兩點間路徑可能有多條、初始點不一定是1。

【**】

1 #include 2

using

namespace

std;

3int n,tot,i,a,b,beg=500;4

int g[510][510],rec[10500],num[510];5

void dfs(intp)6

11int

main()

1216

dfs(beg);

17for(i=tot;i>=1;i--) printf("

%d\n

",rec[i]);

18return0;

19 }

P2731 騎馬修柵欄 尤拉函式

farmer john每年有很多柵欄要修理。他總是騎著馬穿過每乙個柵欄並修復它破損的地方。john是乙個與其他農民一樣懶的人。他討厭騎馬,因此從來不兩次經過乙個柵欄。你必須編乙個程式,讀入柵欄網路的描述,並計算出一條修柵欄的路徑,使每個柵欄都恰好被經過一次。john能從任何乙個頂點 即兩個柵欄的交點...

洛谷P2731騎馬修柵欄

farmer john每年有很多柵欄要修理。他總是騎著馬穿過每乙個柵欄並修復它破損的地方。john是乙個與其他農民一樣懶的人。他討厭騎馬,因此從來不兩次經過乙個柵欄。你必須編乙個程式,讀入柵欄網路的描述,並計算出一條修柵欄的路徑,使每個柵欄都恰好被經過一次。john能從任何乙個頂點 即兩個柵欄的交點...

洛谷 P2731 騎馬修柵欄 尤拉路與尤拉迴路

給出m mm條邊,求出一條尤拉路,起點任意,終點任意,每條邊只經過一次。要求給出的尤拉路字典序最小。1 m 1024,1 n 500 1 leq m leq 1024,1 leq n leq 500 1 m 1 024,1 n 500 先總結一下有向圖 無向圖求尤拉路與尤拉迴路的性質。無向圖 有且僅...