9月14日

        这几天主要看博客,首先看的是LCLS这道题,题目大意是给n个数,动态地修改某个数的值,或者查询一段区间的 最长连续上升子序列,简单的线段树,每个点维护一个区间的从左边开始的最长的上升子序列,从右边开始的最长的上升子序列,这个区间最大的上升子序列。对线段树进行操作就可以了。然后看Sequence operation这道题,是一道线段树成段更新,查询连续目标子串长度的题,大意是有0,1,2三种操作,0代表将区间内全部变为0,1代表区间内全部变为1,2代表区间内0,1取反 3,4代表查询,3代表查询区间内1的总数,4代表查询区间内最长连续1的个数,困难的主要是2和4的操作,2操作不是单纯的覆盖,而是和先前的线段状态取反,这个操作和直接覆盖不一样,如果线段的状态是0或1,且完全被要更改的区间覆盖,这时才可以直接异或操作一个,当线段的状态是-1无论如何都改不了,要递归深入到儿子中,直到其的状态是0或1才可以更改。4操作感觉这个操作最复杂,因为每次更改了线段的信息,就要自底向上维护好左,右,中间连续1的最大长度的值,维护这三个域。感觉这一道题,线段树的所有操作都用到了,可以说对我来说是是一个大升华。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值