洛谷P5019 鋪設道路 題解 模擬 貪心基礎題

2022-05-24 08:30:13 字數 503 閱讀 2043

這道題目是一道模擬題,但是它有一點貪心的思想。

我們假設當前最大的深度是 \(d\) ,那麼我們需要把所有深度為d的坑全都填成深度為 \(d-1\) ,然後去填深度為 \(d-1\) 的坑……

實現**如下(手動開啟了o2優化,不然會tle2組):

#include using namespace std;

#pragma gcc optimize(2)

const int maxn = 100010;

int n, d[maxn], dmax, cnt;

int main()

for (; dmax > 0; dmax --)

for (int i = 0; i < n; i ++)

if (d[i] >= dmax && (!i || d[i-1] < dmax)) cnt ++;

printf("%d\n", cnt);

return 0;

}

洛谷 P5019 鋪設道路

假設現在有乙個坑,但旁邊又有乙個坑,你肯定會選擇把兩個同時減1,那麼小的坑肯定會被大的坑 帶著 填掉。大的坑也會減少a i a i 1 的深度,可以說是白嫖減少了1,所以我們只需要遍歷整個陣列並加上a i 與a i 1 的差即可。include using namespace std define ...

洛谷 P5019 鋪設道路

洛谷傳送門 春春是一名道路工程師,負責鋪設一條長度為 nn 的道路。鋪設道路的主要工作是填平下陷的地表。整段道路可以看作是 nn 塊首尾相連的區域,一開始,第 ii 塊區域下陷的深度為 d id i 春春每天可以選擇一段連續區間 l,r l,r 填充這段區間中的每塊區域,讓其下陷深度減少 11。在選...

洛谷 P5019 鋪設道路

題面檢視 其實看到題目的第一想法其實是二分,每一次找乙個minx,再記錄它的pos,對於 l,pos 1 和 pos 1,r 繼續做,然後一看資料範圍,1 n 100000 立刻就否決了.其實在考場上說不定我就打70分了 然後我就開始對於資料進行模擬,突然靈光一閃,發現如果對於乙個坑x,forall...