一个 UB 的坑点

P5354 [Ynoi2017] 由乃的 OJ

ComplexPlanck @ 2023-02-15 08:53:43

1ull << 64 是 UB。

所以 k=64 的时候不要用 (1ull << k) - 1 - x 来取反,可以用 -1ull - x 取反。


by _•́へ•́╬_ @ 2023-02-15 09:01:03

~0ull


by define_int_long_long @ 2023-02-15 10:18:22

不是 (unsigned long long)~0


by jr_linys @ 2024-05-25 16:38:19

c++20 也可以。


|