1. 程式人生 > 其它 >省選前學習記錄

省選前學習記錄

CF1641D Two Arrays

  1. \(\sum_{i=0}^{n}\binom{n}{i}(-1)^i = [n=0]\)

  2. \(O(n2^m)\) 求一個模式串集合中有多少個模式串和文字串中的字元沒有交集 (保證任意串中不存在相同的字元。

    可以用容斥,\(\sum_{X\subseteq A}\sum_{Y\subseteq B}[X=Y](-1)^{|X|-1} = [A\cap B \neq \varnothing]\)

    關於左側的式子,可以把每個模式串的子串插入到 \(trie\) 上,然後對文字串的每個子串都查詢一下有多少個串和它相等就行。用 \(dfs\) 的方式列舉子串複雜度為 \(O(n2^m)\)

    , \(n\) 為模式串個數, \(m\) 為模式串大小

CF1641C Anonymity Is Important

  1. \(B\) 條件下 \(A\) 成立,等價於在 \(A\) 條件下 \(B\) 成立
  2. 區間 \([l,r]\) 是否滿足條件等價於是否存在一段滿足條件的區間包含 \([l, r]\) (此條件保證在包含關係下有單調性,即若 \(A\) 滿足條件那麼 \(A\) 的子集一定滿足條件,若 \(A\) 不滿足條件,那麼 \(A\) 的超集一定不滿足條件)