題面檢視
其實看到題目的第一想法其實是二分,每一次找乙個minx,再記錄它的pos,對於(l,pos-1)和(pos+1,r)繼續做,然後一看資料範圍,\(1≤n≤100000\),立刻就否決了.其實在考場上說不定我就打70分了
然後我就開始對於資料進行模擬,突然靈光一閃,發現如果對於乙個坑x,\(\forall depth_x+1>depth_x\),我們會將\([x,x+1]\)區間內的數全部減去\(d_x\),那麼這個x就是不必要的.
於是就有了如下的貪心策略
\[\sum_} depth_x-depth_
\]然後問題就迎刃而解了,附上**
#include using namespace std;
const int maxn = 100005;
long long n, a[maxn];
long long ans;
int main()
注:本題在13年考過,在usaco也有題目,等於可以拿3倍經驗三個願望一次滿足 洛谷 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 鋪設道路
眾所周知,這道題和積木大賽是同一道題 題意就是給出一段自然數序列,每次操作 l,r 把區間 l,r 的數全部減一,不允許出現負數,問把序列變為零的最小操作次數 樣例6 4 3 2 5 3 5 大概長這個樣子 我們考慮第一列的四塊格仔,最少需要 4 次操作給消除掉 在考慮第二列的 3 個格仔時,發現都...