退役oier
day1t1見ancestor
一道odt板子題都沒人寫?
主要(考場)思路
從小到大解決深度
每次解決乙個深度,貢獻就是與上乙個深度之差乘上區間個數
之後就統統split
暴力列舉深度那裡珂以用hash優化暴列舉的常數,懶得搞
複雜度因為每次split會刪掉乙個點,所以是嚴格nlogn
考場code:
#includeusingnamespace
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 在選擇區間時,需要保證,區間內的每塊區...