T1:spa
斷環成鏈並複製一倍,而後區間DP。排序
設狀態爲合併區間$[l,r]$的最大得分。查詢
時間複雜度$O(n^3)$。時間
T2:
最後一次向上爬不會滑下來,因而能夠枚舉最後一次吃的藥丸。枚舉
將全部藥丸按照$A-B$排序,每次貪心地選擇最大的幾個值,二分出到達的天數。
還須要判斷中間高度是否嚴格大於$C$,若是不是,那麼不能成功登頂。
若是枚舉的藥丸不在前幾個最大值中,直接用ST表查詢$A-B-C$的最小值是否小於0;
其餘狀況下,後面的數值會錯位,再維護一個錯位的ST表便可。
時間複雜度$O(nlogn)$。
T3:
由於兩我的都要使本身的得分最大,因而若是有一種翻轉方式能使棋子全都正面向上,對手必定會無條件地幫忙。
因此先判斷可否讓全部棋子都正面向上。
將全部行列看作點,棋子看做邊,正面棋子所在行列合併,反面棋子所在行列連邊。
這樣每條邊兩側的狀態都不一樣。
二分圖染色就能夠判斷,而後根據$(n+m)$奇偶性判斷$0/1$。
而後根據奇偶分層,算出一個連通塊的兩個$si$。
若是一個塊爲偶偶,那麼這個塊沒有任何做用,由於不管如何都會抵消掉。
若是一個塊爲奇奇,那麼前後手交換。
若是一個塊爲奇偶,先手能夠控制本身下一次做爲先手仍是後手 。
若是奇奇塊的個數奇數,先手必定能夠變爲後手,先手必勝。
其他狀況下若是奇偶塊的個數爲奇數,先手控場,必勝,反之先手必敗