noip2018 鋪設道路

2022-03-22 16:45:39 字數 598 閱讀 4902

退役oier

day1t1見ancestor

一道odt板子題都沒人寫?

主要(考場)思路

從小到大解決深度

每次解決乙個深度,貢獻就是與上乙個深度之差乘上區間個數

之後就統統split

暴力列舉深度那裡珂以用hash優化暴列舉的常數,懶得搞

複雜度因為每次split會刪掉乙個點,所以是嚴格nlogn

考場code:

#includeusing

namespace

std;

#define gi getint()inline

intgetint()

struct

node

node(

int l,int r=0

):l(l),r(r){}

};set

p;typedef

set::iterator p;

void split(int

q)vector

v[100001

];int

main()

cout

}

道路鋪設 NOIP2018

春春是一名道路工程師,負責鋪設一條長度為 n 的道路。鋪設道路的主要工作是填平下陷的地表。整段道路可以看作是 n 塊首尾相連的區 域,一開始,第 i 塊區域下陷的深度為 di 春春每天可以選擇一段連續區間 l,r 填充這段區間中的每塊區域,讓其下陷深 度減少 1。在選擇區間時,需要保證,區間內的每塊...

比賽 NOIP2018 鋪設道路

原題,而且還是ccf自己的 考慮對於一段最長不上公升序列,無論如何都至少有序列第乙個數的貢獻,可以知道,這個貢獻是可以做到且最少的 然後對於序列最後一位,也就是最小的那乙個數,可以和後面序列拼起來的就拼起來,所以後面的序列需要補償的貢獻就是差分 簡化一下,ans sum n max include ...

貪心 NOIP2018 鋪設道路

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