const double eps=1e-8; for(re i=1;i<=m;++i) { int x=read(),y=read(),z=read(); double c;scanf("%lf",&c); c+=eps; add(x,y,z,c); }
看了讨论区,发现有一种解决精度问题的方法是读入时加上一个极小浮点数(如代码),但不是很理解:无论是定义还是读入都是double类型,加上一个浮点数为什么能有效避免浮点误差?