社区讨论
【退火】线段退化为点/斜率为 0 的解决方法
P2571[SCOI2010] 传送带参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m38t3vrf
- 此快照首次捕获于
- 2024/11/08 22:02 去年
- 此快照最后确认于
- 2025/11/04 15:06 4 个月前
我的退火是随机横坐标,然而当斜率为零时会输出
nan 或乱数于是你可以:
C scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&ax,&ay,&bx,&by,&cx,&cy,&dx,&dy);
if(bx-ax==0) bx-=0.000001;
k1=(by-ay)/(bx-ax);
if(dx-cx==0) dx-=0.000001;
k2=(dy-cy)/(dx-cx);
注意,退火的随机数最好对 取模(我的改了 -> )
Cinline double rd(int low=0,int up=1e3)
{
int _mod=up-low;
return (double)(rnd()%2?1:-1)*((rand()^rand())*rand()%_mod+low);
}
这里谢谢 @lihe_qwq 大佬 Orz
回复
共 2 条回复,欢迎继续交流。
正在加载回复...