不知道大家有没有在做ACM试题的时候总是找不出哪里错了,自己试几组数据都没问题但始终是WA,当然导致出现这种情况的小问题会很多,这里讲一讲由于对浮点数处理不当导致的WA。
有时候为了图方便,我们会选用float数据类型来处理浮点数,但是这也容易导致我们卡在几组精度要求很高的测试用例上,看上去能精确到7,8位已经不会影响到保留到2位小数后的结果,但其实不然,大家可以看看HDU的2023题,能很好的说明这个问题(float在处理超出精度的数据是会采用随机数)。
所以建议大家在做题的时候还是养成用double的习惯,因为一般由于用double而不是float导致超内存和超时而引起的问题很少出现。当然这个例子也说明我们在面对无脑WA的时候要冷静,不要怀疑OJ……多积累一些常见又容易被忽视的小问题对于AC率的提升是很大的。