训练总结之各种各样的错
-
long long 和 double/long double运算会出错,long long隐式转换成double不存在,应避免。
-
map的count(),防爆空间
-
memset小心使用,防T【可以fill,或者手动写循环清空】
-
double:%lf
long double:%Lf -
空间大小(单位:B,字节)及数据范围
【爆空间真的可怕】 -
四舍五入printf
printf("%.1f",a)
保留一位小数+0.05,保留2位小数+0.005,保留3位小数+0.0005
【eg保留一位小数时若后面小数位非全0,则第一位小数+1】
printf("%.1f %.2f %.3f\n", a+0.05, a+0.005, a+0.0005);printf("%.8d\n",1000); //不足指定宽度补前导0,效果等同于%06d
printf("%.8f\n",1000.123456789);//超过精度,截断
printf("%.8f\n",1000.123456); //不足精度,补后置0
printf("%.8g\n",1000.123456); //最大有效数字为8位
printf("%.8s\n",“abcdefghij”); //超过指定长度截断
输出:
00001000
1000.12345679
1000.12345600
1000.1235
abcdefgh -
精度问题esp如何确定【待】
esp极小值,如1e-6
举个例子http://codeforces.com/gym/102500/problem/E
ac代码
wa6代码
区别在于浮点数的比较,应当是介于(-esp,esp)方为相等。脑子当时瓦特了。。。
【平时浮点数比较都没注意这些,都是直接比较,导致这不行那wa的】【cmp码住】
【要求保留两位小数的话,esp必须小于等于1e-2】
https://www.cnblogs.com/Erma/p/7404838.html
https://blog.****.net/JX_Cesare/article/details/81153410