第一是懒标记一定要开long long以及函数传参的时候也要注意;
第二是注意区间修改和pushup、pushdown的时候,不要在修改的时候用到已经修改过的变量,比如这样:
void add(int k,ll s){
a[k].l+=s;
a[k].m1=a[k].m1cos(s)+a[k].m2sin(s);
a[k].m2=a[k].m2cos(s)a[k].m1sin(s);
}
先更换变量来存储就行
void add(int k,ll s){/long long 别忘了/
db x1=a[k].m1cos(s)+a[k].m2sin(s);
db x2=a[k].m2cos(s)-a[k].m1sin(s);
a[k].l+=s;
a[k].m1=x1;
a[k].m2=x2;
}