巨佬自行绕道
虽然似乎很没用 但是只要有一个人WA了不知道 它某种意义上都是有用的
RT,调了好久,发现这些可能的问题:
如果(如讨论区众巨佬一样)样例过全WA:检查一下懒标记是否开longlong了(重点),三角函数公式是不是错了,update时sinx历史版本存了没有;
#define ll long long
struct Node{
int l,r;
double si,co;
ll lazy;
Node(){
si=co=0;
l=r=lazy=0;
}
};
void update(int x,double sinx,double cosx){
double sina=a[x].si,cosa=a[x].co;
a[x].si=sina*cosx+cosa*sinx;
a[x].co=cosa*cosx-sina*sinx;
}
TLE了:可以在修改操作读入时计算好修改值的sin和cos,不要用longdouble,实在不行用快读(亲测由于默认O2都不很必要)
希望有帮助