警示后人
查看原帖
警示后人
307603
_cmh楼主2023/11/17 10:23
  • 检查存 sin⁡\sin 和 cos⁡\cos 数组是否开了 double。

  • 检查存懒标记的数组是否开了 long long。

  • 更新 sin⁡\sin 和 cos⁡\cos 的函数这么些会寄:

void qwq(int i,int k){
	sinx[i]=sinx[i]*cos(k)+cosx[i]*sin(k);
	cosx[i]=cosx[i]*cos(k)-sinx[i]*sin(k);
}

要这么写:

void qwq(int i,int k){
	double Sin=sinx[i],Cos=cosx[i];
	sinx[i]=Sin*cos(k)+Cos*sin(k);
	cosx[i]=Cos*cos(k)-Sin*sin(k);
}

原因是 更新 cosx[i] 的时候会用到上面刚刚更新完的 sinx[i] 的值,导致答案错误。

2023/11/17 10:23
加载中...