1. 程式人生 > >同余類最短路

同余類最短路

mil 例題 給定 宋體 一個數 可能 pan 距離 組成

考慮這樣一個問題:

給定n個數,每次詢問一個數q,可不可以由這n個數組成

設n個數中最小的數為a,對於0-a-1中的每個點i,向(i+xj)%a連一條權值為xj的邊

跑一遍最短路,則距離數組的意義是在模a意義下,在所有可以組成的模a剩余i的數中,最小的數是多少

如果可以到達點i,則i+k*a都可以到達

因為是在模a的意義下,所以0到a-1的所有點就包括了所有可能組成的情況

例題:WC2016 論戰捆竹竿

同余類最短路