被压位高精逼吐了,交了整整一页,还是把犯得各种 SB 或不 SB 的错误总结一下吧。
-
大于等于 base 进位,而不是大于 base 才进位。
-
普通的压位高精要注意,如果 base 太大,那么乘上一个东西之后可能会爆 long long。比如这题中,把 base 设置成 1e16 的话,那么乘上一个 1e5 就直接溢出了。如果你用龟速乘或者 __int128 维护那么当我没说。建议用 long long 的童鞋将 base 设置成 1e14.
-
最后输出答案的时候要补齐位数。对于首个有值的位直接输出,之后的都要补齐 14 位。要是不补齐的话,比如你连乘了 14 个 0,应该输出 1014 才对,但是你却输出了 10,因为低位上的那个 0 应该对应 14 个 0,而你却没有补齐只输出的一个 0。至于如何补齐,printf(%014lld\n",a[i]) 就好了。
希望能有些帮助吧 /kel