Link_Space @ 2020-11-30 07:54:08
为什么这道题我的比较函数这样写
bool cmp(node x,node y)
{
return x.ord > y.ord;
}
其中ord
food[i].ord = (double)food[i].c / food[i].b;
这样写是错的,但是我改成
bool cmp(node x,node y)
{
return x.c * y.b < y.c * x.b;
}
这样就对了,这是为什么??
我只不过将两边同时除以一个
难道不应该是等价的吗??求大佬
by wwlw @ 2020-11-30 08:01:43
精度
by 矢信 @ 2020-11-30 08:16:19
我tm直接扔出带师球捕捉大佬
by 素质玩家孙1超 @ 2020-11-30 08:35:18
@yujiaruidashuaib 理论上是等价的,但实际有精度问题,在实现中应该尽量避免除法,最好可以用乘法代替