日常水題 最大子段和 最短路徑 最小生成樹

2022-04-28 07:25:28 字數 385 閱讀 6694

分析:二分答案,判定是否存在乙個長度不小於l的子段,平均數不小於二分的值。如果把數列中的每個數都減去二分的值,就轉換為判定「是否存在乙個長度不小於l的子段,子段和非負」。

求乙個子段,它的和最大,子段的長度不小於l。

子段和可以轉換為字首和相減的形式,即設sumj表示ai~aj的和,

則有:max ( i-j>=l ) = max(0<=j<=i-l) }(l<=i<=n)

仔細觀察上面的式子可以發現,隨著i的增長,j的取值範圍 0~i-l 每次只會增大1。換言之,每次只會有乙個新的取值進入 min 的候選集合,所以我們沒必要每次迴圈列舉j,只需要用乙個變數記錄當前的最小值,每次與新的取值 sum[i-l] 取min 就可以了。

275 水題 最短路徑問題

最短路徑問題 非常水的一道題啦,但是對於相隔九個月重新出山第一天的我非常不友好,各種小錯誤容易犯啊!一遍floyd加上簡單的座標求距離公式。幾乎是模板題 題目 平面上有n個點,每個點的座標均在 10000 10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路...

最短路徑,最短路徑樹和最小生成樹

首先介紹這三個概念,很多人都聽過最短路徑了,但是最短路徑樹卻很少聽過,關於最短路徑樹的介紹也不太多。而最短路徑樹和最小生成樹更是完全不同的兩個概念。最短路徑就是從乙個指定的頂點出發,計算從該頂點出發到其他所有頂點的最短路徑。通常用dijkstra演算法,floyd演算法求解。最短路徑樹spt sho...

最小生成樹和最短路徑

這篇算作是 演算法 第四版部分讀後感吧 我思考這個問題的開始就是糾結最小生成樹prim演算法和最短路徑dijkstra演算法的異同 1.最小生成樹prim演算法 直接從例子開始吧,我們考慮一副這樣的圖 1.將d設為起始點 設定某個點為起始點是隨機的 考慮與它相鄰節點的權重值,圖中黃色節點,也就是d ...