序列操作
这道题目非常有助于提高我们对lazy的理解
我们设lazy为0表示全部改成0,为1表示全部改成1,为2表示翻转一次,为-1表示没有操作
按照我们对lazy的理解,一个节点真实的信息,等价于这个节点到根节点的路径上的节点的lazy的某个“和”操作
那么在这道题目的“和”操作,就是深度从深到浅节点的lazy值依次操作(这个从lazy标记的时效性也可以看出来)
比如从当前节点到根节点依次经过节点的lazy为0,1,0,2,1,2,就表示当前节点会依次经历全部变0,全部变1,全部变0,翻转一次,全部变1,翻转一次的操作
我们不难发现,全部变0或者全部变1的“优先级”更高,所以我们在代码中体现出来
具体见洛谷提交代码的pushdown函数(注意当递归到某一节点的时候,这个节点的lazy一定要表示这个节点的真实操作)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构