《一 开 O 2 见 祖 宗》蒟蒻第一次写厌氧代码,求助!

P1784 数独

不懂就问,为什么 w 只开 10 是够的
by Darko1227 @ 2023-07-04 13:23:16


![](https://cdn.luogu.com.cn/upload/image_hosting/dtf2l3ur.png?x-oss-process=image/resize,m_lfit,h_30,w_42) 大意了,谢谢老师 : ) 可是为什么不开O2它是 $\textcolor{green}{AC}\ $的
by doris_xyb @ 2023-07-04 13:45:40


我不理解······o2是有什么问题吧
by lorry26 @ 2023-07-04 13:48:01


@[doris_xyb](/user/731828) 未定义行为,不必考究,O2只是对程序合法性要求更严格而已。
by Terrible @ 2023-07-04 13:54:25


@[doris_xyb](/user/731828) 因为 C++ 的特性,数组越界属于 UB,对不进行 O2 优化的程序不做 UB 检查,而数组越界时依然可以找到其对应地址,所以可以正常执行。 例: ```cpp #include <cstdio> using namespace std; int a[2] = {1, 2}; int main() { printf("%d %d\n", a[-1], a[4]); return 0; } ```
by __Remake__ @ 2023-07-04 13:56:28


@[doris_xyb](/user/731828) 下次注意数组大小,当心 RE
by LittleAcbg @ 2023-07-04 14:09:43


@[Terrible](/user/195942) @[__Remake__](/user/284123) 谢谢回复,以后再遇到就懂得了
by doris_xyb @ 2023-07-04 14:10:47


@[LuoJingjia](/user/531709) 对哦,居然没RE
by doris_xyb @ 2023-07-04 14:11:43


@[doris_xyb](/user/731828) 你UB了。。。还有这是氧气中毒,不是厌氧
by sz_jinzikai @ 2023-07-06 11:33:20


一般来讲不开 O2 能过一开就 RE 只有两种可能,一种是数组越界了,另一种是非 void 类的函数没有返回值
by AC_love @ 2023-09-12 09:06:36


|