76.CF1967 Codeforces Round 942 (Div. 1)
CF1967A
CF1967B1
反過來也能推到。
CF1967B2
列舉 \(p,q\),因為 \(p<i,pi< n\),所以 \(p^2< \sqrt n\),\(q\) 同理。
容易做。
CF1967C
一個樹狀陣列的結構。
相當於 \(k\) 次字首和下的組合係數。
用樹狀陣列模擬求出 \(a_1\cdots a_{i-1}\),乘上對應係數可以求出 \(a_i\)。
CF1967D
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\) 層出發的通道的期望長度(除去最左點),則有:
得到對於 \(B\) 的貢獻也是 \(2^{i-1}\),所以 \(A=B\)。
注意,這裡只能推出 \(B\) 走第 \(i\) 層的通道對 \(A\) 的貢獻。
再考慮知 \(A\) 求 \(B\)。
這裡就不同了,因為 \(A\) 對每一層不同的分配數量對 \(B\) 的貢獻都有一個不同係數。
考慮從低往上考慮,不斷將最大值限制提高。
設當前高度為 \(x\),長度為 \(j\),則有:
再加上高度為 \(1\) 的 \(n\)。
時間複雜度 \(\mathcal O(nm)\),好像可以矩陣最佳化。