討論串[問題] 第 k 大連續子陣列和
共 5 篇文章
首頁
上一頁
1
下一頁
尾頁

推噓2(2推 0噓 9→)留言11則,0人參與, 最新作者FRAXIS (喔喔)時間9年前 (2015/02/27 22:39), 9年前編輯資訊
2
0
1
內容預覽:
這算是經典的最大連續子陣列和的變形吧。. 給定一個長度為 n 的整數陣列,和一個正整數 k 。. 找出一個在所有 C(n, 2) 個連續子陣列中,總和第 k 大的連續子陣列。. 理論上是可以做到 O(n),但是這方法應該不實用。. 雖然也有其他的O(n lg n),O(n lg^2 n)和O(n l
(還有171個字)

推噓1(1推 0噓 2→)留言3則,0人參與, 最新作者DJWS (...)時間9年前 (2015/02/28 07:26), 9年前編輯資訊
1
0
2
內容預覽:
最近剛好有遇到類似的問題. 我想你問的應該是靜態問題而不是動態問題吧?. 令 sum[i][j] = a[i] + ... + a[j] 是連續和. 把 sum 畫成一個矩陣. 只有上三角,對角線是 a[0] 到 a[n-1]. 整個結構類似 pascal 三角形,. 不過這裡是越右上越大,右上角是
(還有480個字)

推噓1(1推 0噓 3→)留言4則,0人參與, 最新作者DJWS (...)時間9年前 (2015/02/28 08:06), 9年前編輯資訊
0
0
2
內容預覽:
說到 RANGE. 最近剛好有學到一個 fourier transform 的方法 分享一下. 時間複雜度是 O(n + RANGE log RANGE). 首先計算前綴和 prefix_sum(x) = a[0] + ... + a[x]. 連續和就是 prefix_sum(j) - prefix
(還有635個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者FRAXIS (喔喔)時間9年前 (2015/02/28 22:29), 編輯資訊
0
0
0
內容預覽:
我也有想過這樣作,這樣就可以擺脫掉 range。. 令P[i] = A[1..i], P[0] = 0. SUM[i][j] = 結尾在 i 第 j 大的連續和. = P[i] - (P[0] ~ P[i-1] 中第 j 小數). 給定 (i, j) 利用 range median query 可以
(還有191個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者FRAXIS (喔喔)時間9年前 (2015/03/06 22:38), 編輯資訊
0
0
0
內容預覽:
我在思考樹上的 k 大路徑時找到了一個比較容易做的o(n^2)方法。. (bzoj 3784). 用陣列的中點把陣列切成兩半,計算通過中點的子陣列和,然後分別遞迴. 兩邊計算不通過中點的子陣列和,就可以找到第 k 大了。. 計算通過中點的子陣列和時,. 把左半邊每個元素到中點的子陣列和算出並排序,設
(還有305個字)
首頁
上一頁
1
下一頁
尾頁