日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2018提高组训练Day2

發(fā)布時間:2025/3/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2018提高组训练Day2 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

A

算法 1

對于每組詢問,暴力的算出每個二次函數(shù)的取值。

時間復雜度 \(O(nq)\)。期望得分 \(20\) 分。

算法 2

\(x>0\) 時,要求 \(a_ix^2+b_ix\) 的最大值,只需要求出 \(a_ix+b_i\) 的最大值。
于是問題就轉化為了,給定一堆直線,求在某些點的最大值。顯然答案一定在上凸殼上。
對于每組詢問,只要二分出它在上凸殼的哪個位置就行。

同樣的,當 \(x<0\) 時,答案在 \(a_ix+b_i\) 的下凸殼上,再寫一個凸殼就行了。

時間復雜度 \(O((n+q)\log n)\)。期望得分 \(100\) 分。

B

算法 1

直接按題意枚舉,動態(tài)規(guī)劃或是記憶化搜索。

時間復雜度 \(O(a^n)\)。期望得分 \(30\) 分。

算法 2

考慮第二個測試點。只需要記錄當前還有多少個位置為 \(1\) 就行了。

時間復雜度 \(O(n)\)。期望得分 \(10\) 分。加上算法 1,期望得分 \(40\) 分。

算法 3

答案可以看成是每一個元素被選中的次數(shù)之和。由于期望的線性性,我們可以去計算每一個位置被選中的次數(shù)的期望。

首先,第一個元素一定被減了 \(a_1\) 次。

考慮某一個位置 \(i\),假設當前有 \(c\) 個元素不為 \(0\),那么每個元素被操作的概率都是 \(\frac{1}{c}\)。倘若只關注 \(1\)\(i\) 兩個元素,可以發(fā)現(xiàn)操作其它元素的時候對它們沒有影響,而且它們兩個被操作的概率是相等的。于是這個問題就等價與一個只有兩個元素的原問題。

因此元素之間是獨立的!使用算法 1 中的動態(tài)規(guī)劃就可以知道每個元素對答案的貢獻,求和即可。

時間復雜度 \(O(a^2+n)\)。期望得分 \(60\) 分。

算法 4

算法 3 中的動態(tài)規(guī)劃可以看成從 \((a_1, a_i)\) 出發(fā)的隨機游走,每次隨機一個方向將減 \(1\),直到走到坐標軸上為止。若停在 \((0,a)\),對答案的貢獻為 \(a_i-a\)。若停在 \((a,0)\),對答案的貢獻為 \(a_i\)

于是可以直接寫出貢獻的式子。

\[\sum_{i=0}^{a_i-1}i*\frac{a_1-1+i\choose i}{2^{a_1+i}}+a_i(1-\sum_{i=0}^{a_i-1}\frac{a_1-1+i\choose i}{2^{a_1+i}})\]

前面那項是停留在 \((0,a)\) 的答案,后面那項是停留在 \((a,0)\) 的答案。

\(a_i\) 增加 \(1\) 的時候,變化的貢獻可以在 \(O(1)\) 的時間內(nèi)得到。(前后都是只增加了一項)

時間復雜度 \(O(a+n)\)。期望得分 \(100\) 分。

C

算法 1

對于每組詢問,遍歷所有節(jié)點,看看它是不是在路徑上,并計算答案。

時間復雜度 \(O(nq)\)。期望得分 \(10\) 分。

算法 2

由于可能詢問的點對只有 \(O(n^2)\) 組,每次枚舉 \(u\) 開始深搜。

時間復雜度 \(O(n^2)\)。期望得分 \(20\) 分。

算法 3

當樹形態(tài)隨機的時候,兩個點之間期望只有 \(O(\log n)\) 個點,暴力即可。

時間復雜度 \(O(Hq)\)。期望得分 \(20\) 分,結合算法 2,期望得分 \(30\) 分。

算法 4

\(a_i<2\) 的時,按位或只會對最后一位產(chǎn)生影響,即,當 \(dist(w,u)\) 為奇數(shù)且 \(a_w=1\) 時,答案需要減 \(1\)。于是只要倍增時順便維護從每一個點 \(t\) 出發(fā),向上 \(2^i\) 的距離之內(nèi),與 \(t\) 距離為奇數(shù)且點權為 \(1\) 的點的個數(shù)就行了。

時間復雜度 \(O(n\log n)\)。期望得分 \(10\) 分,結合算法 2、3,期望得分 \(40\) 分。

算法 5

類似的,可以分別考慮每一個二進制位對答案的貢獻。即,對于位 \(2^x\),維護從每一個點 \(t\) 出發(fā),向上 \(2^i\) 的距離之內(nèi),與 \(t\) 距離為 \(d\) 滿足 \(d \mathbin{\mathrm{and}} 2^x = 2^x\) 且點權的二進制表示中包含 \(2^x\) 的點的個數(shù)就行了。

由于路徑有向上的部分,也有向下的部分,因此還需要維護滿足 \(d \mathbin{\mathrm{and}} 2^x = 0\) 的點的個數(shù)在從 \(v\) 倍增的時候使用。

時間復雜度 \(O(n\log n \log a_i)\) 期望得分 \(50\)\(60\) 分。

算法 6

注意到并不需要對于每一個位分別維護點的個數(shù)和,只需要維護所有重疊的位的數(shù)位和就行了,于是乎可以少掉一個 \(\log\)

時間復雜度 \(O(n\log n)\) 期望得分 \(100\) 分。

轉載于:https://www.cnblogs.com/Alessandro/p/9854409.html

總結

以上是生活随笔為你收集整理的2018提高组训练Day2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。