模擬測試76

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)$。

相關文章
相關標籤/搜索