rt,使用的是第一篇题解的思路。
代码如下:
E P(E x) {
return S(x << 100);
}
E operator^(E x, E y) {
E s = x + y;
x = x << 50, y = y << 50;
for (int i = 31; i > 0; --i) {
E vx = S(x + kP[i]), vy = S(y + kP[i]);
s = s - (P(vx + vy + "-1.5") << i + 1);
x = x - (vx << i + 50), y = y - (vy << i + 50);
}
s = s - (P(x + y + "-1.5") << 1);
return s;
}
可以看到,我在最后一步中没有把 x 和 y 右移 50 位偏移回来,但是却能够通过洛谷上的数据
所以这是因为你谷数据水还是因为什么原因/fad