1. 程式人生 > >17.11.04

17.11.04

復雜度 但是 技巧 超過 簡化 線性基 最小 pro 1.0

  • 模擬考試
    • Prob.1(只AC了兩組
    • 簡化問題後:給出不超過20個50位以內的二進制數,問是否存在某些數的異或值等於輸入的數。

      解法:

      1).暴力搜索每種情況(誒,我怎麽連搜索都打錯了???)

      2).for循環枚舉每種選法,看是否存在一種選法的異或值等於目標值

      然後有一個小技巧:

      對於每個枚舉到的集合S,不需要把每一個出現的元素再重新提出來相異或。因為是從小到大枚舉,且最後的異或值與異或的順序無關,所以只需要把S這個01串減小一個“1”(就去掉lowbit對應的那個“1”吧),這樣得到S的一個子集S‘,然後O(1)轉移就好了。

      但是這個復雜度是k(多組)*107級別的。

      大米兔大佬不甘忍受如此高的復雜度,於是他大發神威,寫了一個線性基(鹹腥雞)來處理這個問題。於是這個就變成鹹腥雞裸題了,他說復雜度是小得多。(他科普了一下,真的學不來,就先記下來了。)

    • Prob.2(AC)Tarjan求強連通,裸裸裸
    • Prob.3(AC)最小生成樹後,跑兩個dfs求以每個點作為根時整棵樹的代價,用到“轉根”小技巧。

17.11.04