hdu1698:
#include<cstdio>
#define maxn 111111
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
int sum[maxn<<2];
int col[maxn<<2];
void PushDown(int rt,int m)
{
if(col[rt])
{
sum[rt<<1]=(m-(m>>1))*col[rt];//这里左儿子的区间长为m-(m>>1),左儿子是从l-(l+r)>>1,取较长的一段
sum[rt<<1|1]=(m>>1)*col[rt];//右儿子的区间长为m>>1
col[rt<<1]=col[rt<<1|1]=col[rt];
col[rt]=0;
......
阅读全文