先口胡一個,明天再來補代碼(
先考慮 \(-1\) 的情況,顯然沒有出邊的點是 \(-1\),將這樣的點和對應的邊刪掉,直到每個點都有出邊。顯然被刪掉的點都是 \(-1\),其余的點都不是 \(-1\)。
對於剩下的邊,顯然 \(r_i\) 最大的邊如果走了,那么其他的邊隨便走,所以對應的 \(+p_i\) 沒有意義。我們直接刪掉這條邊,然后在起始點 \(a_i\) 打上 \(r_i\) 的標記表示到達這里后且資產 \(\ge\) 標記可以直接結束。
刪掉邊后 \(a_i\) 可能沒有出邊了,這又回到 \(-1\) 的情況,將對應的點和邊刪掉,然后找 \(r_i\) 最大的邊刪掉。最后將所有邊刪掉。
每個點的標記就是答案。
這道題的關鍵在於逆向思維和歸納法,如果順着模擬非常困難,但是從結束時的邊入手則非常清晰。每次刪除一條邊歸納下去也是關鍵。
