CCPC2023-Shenzhen

haze1231發表於2024-03-10

\[\LARGE \textrm{Problem A. A Good Problem} \]

image

  • \(a_i\in[0, n]\)

分治,考慮做值域為 \([L,R)\) 的一部分,保證初始情況下所有數都是 \(L\),然後把所有值域在 \([mid, R)\) 的數抬到 \(mid\),再做分成的兩部分。


\[\LARGE \textrm{Problem F. Gift} \]

image

基環樹,列舉每一條環上的邊刪掉,不能出現度數大於等於 \(5\) 的點,度數等於 \(4\) 的點不能作根,計數即可。


\[\LARGE \textrm{Problem G. Gene} \]

image

考慮第 \(i\) 列,字元 \(c\) 沒有出現的串組成的集合為 \(S(i, c)\),用 bitset 維護。

每次詢問的時候再利用 bitset 維護哪些串可能為答案,由於 \(k\) 很小,列舉列,bitset 求交後列舉每個未匹配的串。

時間複雜度 \(O\left(\dfrac{MN}{\omega}+QM\left(K+\dfrac N\omega\right)\right)\),空間複雜度 \(O\left(\dfrac{NM|\Sigma|}\omega+(N+Q)M\right)\)


\[\LARGE \textrm{Problem I. Indeterminate Equation} \]

image

\(a^k-b^k = (a-b)\sum\limits_{i+j=k-1,i,j\in\mathbb N} a^ib_j\),因此 \((a-b)|n\)

不妨設 \(a = b+t\),二項式展開後有 \((b+t)^k-b^k>t^k\)。因此 \(a-b\) 不大於 \(10^6\) 且為 \(n\) 的因數。列舉之,二分出 \(b\) 的值即可。

時間複雜度 \(O(\sqrt[k]N + d(N)\log N))\)