5月記錄

蒟蒻orz發表於2024-05-09

76.CF1967 Codeforces Round 942 (Div. 1)

CF1967A

CF1967B1

\[b\times \gcd(a,b)|a+b \to qi^2|(p+q)i \to qi|(p+q)\to q|p \to b|a \]

反過來也能推到。

CF1967B2

\[a+b|b\times \gcd(a,b) \to (p+q)i|qi^2\to (p+q)|qi \to (p+q)|i \]

列舉 \(p,q\),因為 \(p<i,pi< n\),所以 \(p^2< \sqrt n\)\(q\) 同理。

容易做。

CF1967C

一個樹狀陣列的結構。

相當於 \(k\) 次字首和下的組合係數。

用樹狀陣列模擬求出 \(a_1\cdots a_{i-1}\),乘上對應係數可以求出 \(a_i\)

CF1967D

image

CF1967E1

經典雙直線 \(\mathcal O(n\sqrt n)\)

77.CF1965

78.CF1969

CF1969E

記錄每個點上的數前一個出現和後一個出現的位置。

合法區間是 \(n\) 個二維矩陣。

掃描線求出 \(l_i\) 表示以 \(i\) 為右端點,最大的不合法左端點。

按照 \(l_i\) 排序,最大的 \(l_i\) 一定要修改(必要性),記已經修改過的 \(\min(l_i)\)\(mn\),若之後的 \(l_i\),有 \(i\ge mn\),則跳過,一定最優。

79.CF335E

考慮知道 \(B\)\(A\)

對於一個高度為 \(i\) 的樓房,機率為 \(\frac{1}{2^i}\),高度 \(\ge i\) 的機率為 \(\frac{1}{2^{i-1}}\),小於的機率即為 \(1-\frac{1}{2^{i-1}}\)

考慮從一棟樓的第 \(i\) 層出發的通道的期望長度(除去最左點),則有:

\[p\sum_{k=0}^{+\infty}(1-p)^k(k+1)=\frac{1}{p}=2^{i-1} \]

得到對於 \(B\) 的貢獻也是 \(2^{i-1}\),所以 \(A=B\)

注意,這裡只能推出 \(B\) 走第 \(i\) 層的通道對 \(A\) 的貢獻。

再考慮知 \(A\)\(B\)

這裡就不同了,因為 \(A\) 對每一層不同的分配數量對 \(B\) 的貢獻都有一個不同係數。

考慮從低往上考慮,不斷將最大值限制提高。

設當前高度為 \(x\),長度為 \(j\),則有:

\[(n-j)P(\ge x)^2P(<x)^{j-1}(2^{i-1}-2^{i-2}(1+\sum_{k=0}^{j-1}\frac{k\cdot P(=x)^k}{P(<x)^k})) \]

再加上高度為 \(1\)\(n\)

時間複雜度 \(\mathcal O(nm)\),好像可以矩陣最佳化。