过了,但还是有疑问

P3188 [HNOI2007] 梦幻岛宝珠

没看题 开个 O2 试试?ub 过题正常现象( > 任何情况下,如果(左移右移运算)运算**右操作数的值为负或大于等于提升后左操作数中的位数**,那么行为未定义。
by y_kx_b @ 2023-10-11 11:41:50


@[y_kx_b](/user/592895) 可是i从0开始循环,而g那一行显然访问了i-1啊
by ImposterAnYu @ 2023-10-11 14:11:42


@[ImposterAnYu](/user/510555) 照理来说数组是开在一起的所以你访问 `g[-1]` 应该访问的是 `f[N + 4]`(?) 当然这是没开 O2 的情况下。开了 O2 可能就直接 re 了。或者说你把 f 和 g 的定义换一下说不定就寄了() ub 之后一切都有可能。
by y_kx_b @ 2023-10-11 15:06:08


```cpp int f[10], g[10], h[10]; int main() { rep(i, 0, 29) h[-i] = i; cout << g[0]; return 0; } ``` 输出 `16`。/oh
by y_kx_b @ 2023-10-11 15:09:34


@[y_kx_b](/user/592895) 草,好神奇
by ImposterAnYu @ 2023-10-11 15:12:32


|