警钟长鸣!如果你过样例,0pts
查看原帖
警钟长鸣!如果你过样例,0pts
1122611
stickman_stickmin楼主2024/6/19 11:31

注意到

void update(int p,double sinx,double cosx){
    double sina=t[p].sin,cosa=t[p].cos;
    t[p].sin=sina*cosx+cosa*sinx;
    t[p].cos=cosa*cosx-sina*sinx;
}
......
    double tsin=sin(t[p].add),tcos=cos(t[p].add);
    update(p*2,tsin,tcos);
    update(p*2+1,tsin,tcos);

和

    t[p*2].sin=t[p*2].sin*tcos+t[p*2].cos*tsin;
    t[p*2].cos=t[p*2].cos*tcos-t[p*2].sin*tsin;
    t[p*2+1].sin=t[p*2+1].sin*tcos+t[p*2+1].cos*tsin;
    t[p*2+1].cos=t[p*2+1].cos*tcos-t[p*2+1].sin*tsin;

不同,后者t[son].cos由已经修改过的t[son].sin转移而来,故全WA

(蒟蒻调半天没看出来最后求助于dalao,被其一眼盯真)

2024/6/19 11:31
加载中...