T1:spa
考慮特殊構造,使不一樣段不會相互影響。排序
分塊構造,大段遞減,小段遞增。遍歷
最長降低子序列即爲段數,最長上升子序即爲最長的一段的長度。統計
特判無解狀況,而後分配一下長度便可。時間
時間複雜度$O(n)$。枚舉
T2:
將全部的數排序,統計前綴和,若是到某個點發現下一個數大與前綴和的兩倍,則會出現斷層。
統計斷層長度獲得答案。
時間複雜度$O(nlogn)$。
T3:
考慮轉化一下限制條件。
知足條件的樹有如下性質:
一、子樹編號連續;
二、坐子樹節點小於右子數;
三、左子樹根節點編號爲當前節點加一。
首先咱們強制$a<b$,那麼兩個點的關係爲前後關係。
強制$a$在$b$後:
$a$必定是$b$的祖先,由於若是他們的位置關係是第二種的話,$a$在中序遍歷中必定在$b$以前,因此$b$必定在$a$的左子樹中。
強制$a$在$b$前:
若是$a$是$b$的祖先,則$b$在$a$的右子樹,其他狀況下$b$不在該子樹中,這種限制和$b$不在$a$的左子樹中等價。
設$dp[i][j]$爲以$i$爲根,子樹大小爲$j$的方案數,枚舉左子樹大小轉移。
時間複雜度$O(n^3)$。