真想不到啊…竟然是 LIS
題解參 這
另外,這題是 Dilworth's theorem 的應用。
真想不到啊…竟然是 LIS
題解參 這
另外,這題是 Dilworth's theorem 的應用。
個人認為,這是非典型的題目,想得到的人真強啊。
觀察範測:
因為每種 blocks 有其高度限制,所以可以順勢想到:高度限制越低的 block 要越先疊。
將每種 blocks 根據高度限制(a),由小到大排序後,題目就變成了多重背包。
解多重背包,有兩種方法
直覺可以想到是 0/1 背包,但又有點不一樣…
沒有類似總重量限制這個條件,並且要使 sum(s) + sum(f) 最大,sum(s), sum(f) > 0
並查集基本題,直接看程式碼
並查集經典題。 並查集要記得 init 啊
裸 Floyd Warshall
相當於找負環,因為 FJ 可以 start at some field,所以只要圖中存在負環,答案就是 YES