我有一個連接圖g
和n
頂點和m
邊。檢查從頂點v到另一個頂點w的所有路徑是否具有相同的長度
每條邊都可以從兩個方向穿過,而在一個方向上穿過它們的重量是正的,在另一個方向穿過它們並且它們的重量是負的。
因此,對於每一個邊緣u
- >v
體重w
存在一個邊緣v
- >u
體重-w
。
我的目標:
對於給定的頂點v
,檢查是否存在一個路徑回v
(一個週期),因此該路徑的邊緣權重的總和不等於0
。如果存在這樣的路徑,則輸出該路徑的最小數量的邊緣,否則輸出"all cycles are fine"
。
實例:
一個例子,其中從v
到v
總和的所有路徑可達0
。輸出爲"all cycles are fine"
:
在存在路徑從v
到v
其邊緣總結到的東西是不等於0
一個例子。這樣的路徑的邊的最小數目是4在該實例中:
我目前的做法:
這個問題似乎是等效於檢查是否從一給定頂點v
所有路徑到任何其他頂點w
的長度相等,如果這是真的,那麼「所有周期都很好」,否則我輸出打破條件的最短週期的長度。我無法找到一個有效的算法來測試這種情況。
感謝您的幫助,完整解答:https://stackoverflow.com/questions/44141136/check-for-cycles-whose-weights-dont-sum-up-to-0/44141592#44141592 –