洛谷P4198 楼房重建 (分块)

  小A的楼房外面拥有壹父亲片破土工地,工地上拥有N栋待建的楼房。每天,此雕刻片工地上的房儿子拆卸了又建、建了又拆卸。他日日无赖地看着窗外面发愣,数己己己却以看到好多栋房儿子。

  为了信募化效实,我们考虑此雕刻些事情突发在壹个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房却以用壹条衔接(i,0)和(i,Hi)的线段体即兴,就中Hi为第i栋楼房的高。假设此雕刻栋楼房上任何壹个高父亲于0的点与(0,0)的包线没拥有拥有与之前的线段相提交,这么此雕刻栋楼房就被认为是却见的。

  破土队的修盖尽共终止了M天。初始时,所拥有楼房邑还没拥有拥有末了尾修盖,它们的高均为0。在第i天,修盖队将会将左右背靠标注为Xi的房屋的高变为Yi(高却以比原到来父亲—修盖,也却以比原到来小—撤摒除,甚到却以僵持不变—修盖队此雕刻天什么事也没拥有做)。请你帮小A数数每天在修盖队完工之后,他能看到好多栋楼房?

  输入程式:

  第壹行两个正整顿数N,M

  接上M行,每行两个正整顿数Xi,Yi

  输入程式:

  M行,第i行壹个整顿数体即兴第i天事先小A能看到的楼房拥有好多栋

  输入样例#1:

  3 4

  2 4

  3 6

  1 1000000000

  1 1

  输入样例#1:

  1

  1

  1

  2

  关于所拥局部数据1<=Xi<=N,1<=Yi<=10^9

  N,M<=100000

  我们发皓能瞧见的楼房的个数,坚硬是此雕刻些楼房的歪比值的最长上升儿子前言列的长度,却以线段树维养护,也却以分块,条是分块要缓得多

  落主在此雕刻边讲壹下分块的做法,线段树以后又补养?

  设拥有两个点a,b,高区别为h[a],h[b],假设a不会被b阻挡,必拥有,募化为迨法方法为,特佩的,关于原点,我们特判壹下,h[a]是不是父亲于0就却以了

  关于修改,我们强大力花样翻新本块内元斋信息,每回清洞,重行维养护壹个块内最长上升儿子前言列的长度,时间骈杂度

  关于查询,设last为上壹个满意环境的块的末了条节点,我们每回从块1末了尾,壹直到最末壹块,在块内折半查找法法法(鉴于是最长上升儿子前言列,因此满意无赖性)与last比较方方满意环境的点,这么从此雕刻个点末了尾壹直到块末了邑是合法的前言列,把恢复案加以上此雕刻壹段区间的长度,然后把last花样翻新为本块末了条,持续上述操干

  时间骈杂度

  条是此雕刻么是会T的,我们把块的父亲小改为会拥有零数效,条是记得数组父亲小也要相应更改

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注