龍(dragon)
難點:
(1)刪邊後如何尋找新的最短路。
(2)A,B兩方的決策互相影響十分複雜。
(3)如何統計每個起點的ans。
解題:
(3)解決這類多起點一終點的問題,可以想到dp。
(1)解決這類最短路轉移的問題,可以考慮最短路樹。
(2)解決這類博弈問題,可以設計兩個dp陣列,分別維護影響前後的ans,在轉移到最終的答案陣列。
拆除炸彈(youyou)
難點:
(1)如何維護與判斷一個二分圖(沒有奇環)。
(2)維護一個區間並要將其排序,時間複雜度大。
(3)區間內含有的資訊量過大。
解題:
(1)判斷二分圖,可以用並查集。
(2)需要維護並排序區間,可以用線段樹,但要注意資訊量與合併複雜度。
(3)對於這類問題,可以:1.對部分資訊記憶化並離線改變區間的查詢順序。2.分析性質去掉無用資訊。
(3‘)關於並查集(樹)的連通性問題,只有n-1條樹邊起關鍵作用。
賴教(lai)
難點:
(1)“賴教”勢力的擴散不好處理。
(2)使最終的“賴教”消失難維護。
(3)如何使軍隊花費最優。
解題:
(1)對於這類會擴散的問題,可以逆思考空區間的縮減,並將其繪成形如等腰三角的圖。
(2)使最終無法擴散,即"賴教"消失,會發現就是諸多等腰三角形的拼接清空完1到n。
(3)區間覆蓋的最優性問題,可以考慮最短路演算法(以區間為點的點去最短路)。
(3‘)點去最短路尋找出度困難時,可以使用