萌新求问,C++14和C++20 的区别

CF55D Beautiful numbers

因为 `CF` 上 `C++20` 是 $64$ 位的! `CF` 上 `C++20` 只有 $64$ 位,正好等于上洛谷的 `C++20`。 `GNU C++20 (64)` `GNU C++20 11.2.0 (64 bit, winlibs)` 所以 T 了的可以试试 `C++20`
by chengyiyang @ 2022-08-03 21:23:08


你这个用 `C++17` 的 $64$ 位也可以
by chengyiyang @ 2022-08-03 21:25:02


@[shight](/user/114859)
by chengyiyang @ 2022-08-03 21:28:04


@[shight](/user/114859) `v.size()` 的类型是 `unsigned long`, 该值为 $0$ 时减 $1$ 导致了下溢 . (第 $33$ 行).
by zero4338 @ 2022-08-03 22:02:09


@[shight](/user/114859) 刚测试了下 是系统位数的问题 在 32位 系统下,`size_t` 为 `unsigned int`,而 64位 系统下,`size_t` 为 `unsigned long long` (`v.size()` 的返回值为 `size_t`) 然后你的代码中出现了 `((size_t) 0) - 1`,如果为 `unsigned int`,那么传的值为 32个1 ,转成 `long long` 后,就变成了一个很大的数。而 `unsigned long long`,得到的值为 64个1, 转换为 `long long` 后还是 -1,所以没有RE。 所以还是注意别数组越界,最后还是只是因为 -1 越界太小了所以没RE。
by APJifengc @ 2022-08-03 22:18:19


|