10.11 牛客
阿新 • • 發佈:2021-10-13
沒有摘要的摘要
將其變為正整數 在使用操作 \(2, 3\) 讓 \(n\) 變為 \(1\)
10.11 牛客
目錄得分情況
30 + 0 + 40 + 0 = 70
題解
T1 最終測試
\(30\ Pts\)
列舉所有可能性 對於每種可能性 對選手排序得到排名
\(60\ Pts\)
設 \(E_i\) 表示第 \(i\) 為選手的期望排名 \(s_i\) 為第 \(i\) 位選手的得分 有:
\[E_i = 1 + \sum_{j \ne i}P(s_i < s_j)\\ = 1 + \sum_{j \ne i}\frac 1{16}\sum_{0 \leq x1, x2, y1, y2 \leq 1} [x_1a_{i, 1} + x_2a_{i, 2} < y_1a_{j, 1} + y_2a_{j, 2}] \]複雜度: \(O(n^2)\)
這一部分的程式碼
\(100\ Pts\)
看上面那個式子 \(j\) 的列舉與 \(x_1, x_2\) 是不影響的 可以交換列舉的順序
\[E_i = 1 + \frac 1{16} \sum_{0 \leq x_1, x_2 \leq 1}\sum_{j \ne i}\sum_{0 \leq y_1, y_2 \leq 1} [x_1a_{i, 1} + x_2a_{i, 2} < y_1a_{j, 1} + y_2a_{j, 2}] \]考慮裡面的兩個求和 當 \(x_1a_{i, 1} + x_2a_{i, 2}\) 確定之後就是求比其大的數的個數 將所有數存下來排個序 每次查詢的時候二分
複雜度: \(O(n\log n)\)
這一部分的程式碼
T2 空間跳躍
題解說 \(dfs\) 期望能通過 \(40\%\) 的資料 但是 BS 爆零了
將構造過程反過來 看成從 \(n\) 到 \(1\) 的構造 那麼操作 \(2, 3\) 可以看成 \(n = \frac n2\) 和 \(n = \frac n3 + 1\)
題解說根據 \(3n + 1\) 猜想 對於給定的範圍 只要 \(n\) 為偶數就讓 \(n = \frac n2\) 的話 正整數的 \(n\) 必然能到達 \(1\) 負整數的 \(n\) 必然能落到 \(-1, -5, -17\)
讓 \(n\) 的絕對值足夠小之後可以使用操作 \(1\)
題解說通過驗證這樣的構造不會超過 \(1500\) 步
T3 快速訪問
題目要求維護一個點集到某個點的距離的平方和
直接差了
\[\sum_{v \in S}dis(u, v)^2 = |S|dep_u + \sum_{v \in S}dep_v^2 + 4\sum_{v \in S}dep_{lca(u, v)} + 2dep_u\sum_{v \in S}dep_v - 4dep_u\sum_{v \in S}dep_{lca(u, v)} - 4\sum_{v \in S}dep_vdep_{lca(u, v)} \]分別維護後面每一項即可
後面那一坨東西的第一項 第二項 第四項是可以直接維護的 其他項可以通過樹剖維護
這裡只補一個東西
\[\sum_{i = 1}^k(2i - 1) = 2\sum_{i = 1}^ki - k = 2 \times \frac {(1 + k)k}2 - k = k^2 \]然後就可以直接做了
T4 門童
咕~