数据疑似有误
查看原帖
数据疑似有误
115947
huangx607087楼主2023/12/13 17:12

题目中写的是保证两个点的距离不超过 101810^{18},然后我瞄了一眼这个题C++的提交都是3ms,感觉这个题可能涉及高精度就准备水一发Python。 结果:

print(abs(D(K,x1,y1)-D(K,x2,y2)))

80pts,WA4个点

扫了眼其他人python的提交记录:全是80pts,并且那几个点全是 WA 而不是 TLE(说明这个题没有卡py时间)

print(abs(D(K,x1,y1)-D(K,x2,y2))&0x7fffffffffffffff)

85pts,WA3个点

然后自己用C++重打了一遍,用的相同的思路,AC

最后:

ans=D(K,x1,y1)-D(K,x2,y2)
ans%=2**64
if ans>2**63:
    print(2**64-ans)
else:
    print(ans)

100pts,AC

原因:这个题数据并没有保证最终答案小于 101810^{18},而题解中C++的都涉及了 3k−1×3k−13^{k-1}\times 3^{k-1} 操作,这个情况下在 k=38k=38 的时候会爆 long long,如果出现不符合题目条件的数据,那么最后的答案就是错的。

2023/12/13 17:12
加载中...