警示后人
查看原帖
警示后人
678087
fangzichang楼主2022/11/26 10:23

巨佬自行绕道
虽然似乎很没用 但是只要有一个人WA了不知道 它某种意义上都是有用的


RT,调了好久,发现这些可能的问题:
如果(如讨论区众巨佬一样)样例过全WA:检查一下懒标记是否开longlong了(重点),三角函数公式是不是错了,update时sinx历史版本存了没有;

#define ll long long
struct Node{
    int l,r;
    double si,co;
    ll lazy;
    //正确
    //int 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;
    //正确
    
    //a[x].si=a[x].si*cosx+a[x].co*sinx;
    //a[x].co=a[x].co*cosx-a[x].si*sinx; 
    //错误    
    
    //公式要对
}

TLE了:可以在修改操作读入时计算好修改值的sin和cos,不要用longdouble,实在不行用快读(亲测由于默认O2都不很必要)
希望有帮助

2022/11/26 10:23
加载中...