演算法
簡單演算法
DAG 上最長路很好實現, 即按照拓撲序 dp
設已經知道最長路答案為 \(f_x\)
現將每個點按照 \(f_x\) 分層, 最小層級沒有出邊, 顯然字典序排名相同
推導下一層時, 對於出邊 \((u, v)\) , 按照邊權為第一關鍵字, 上一層的 \(v\) 的排名為第二關鍵字排序, 即可得到字典序最小的最長路
對每一層, 處理完時再排序即可繼續推導
程式碼
總結
對於有多個問的題目, 考慮在解決一個問時的本質, 並從此下手解決問題
DAG 上最長路很好實現, 即按照拓撲序 dp
設已經知道最長路答案為 \(f_x\)
現將每個點按照 \(f_x\) 分層, 最小層級沒有出邊, 顯然字典序排名相同
推導下一層時, 對於出邊 \((u, v)\) , 按照邊權為第一關鍵字, 上一層的 \(v\) 的排名為第二關鍵字排序, 即可得到字典序最小的最長路
對每一層, 處理完時再排序即可繼續推導
對於有多個問的題目, 考慮在解決一個問時的本質, 並從此下手解決問題