dreamxr
精诚所至,金石为开!

导航

 

2012年7月5日

摘要: 【题目描述】给定含有n个数的序列,初始状态每个数为1,然后有q个操作,每次改变某段区间的值,求最后的总和。【思路】线段树的成段更新,需要用到懒惰标记(lazy_tag)考虑最朴素的办法,更新区间段的时候从上到下全部更新,但是这样做的话每次更新时间是O(n)的,肯定要TLE。lazy_tag的思想就是,当更新到某个节点,并且需要更新的区间包含这个节点所代表的区间时,直接更改这个区间,并做懒惰标记,不再继续向下更新,当更新或者询问到这个节点的子节点时,将标记下传。这样做可以大大降低时间复杂度。#include<cstdio>#define N 100010#define lson l, 阅读全文
posted @ 2012-07-05 21:44 dreamxr 阅读(151) 评论(0) 推荐(0)