为啥不能O2优化?

P1047 [NOIP2005 普及组] 校门外的树

zsx_herobrine @ 2024-07-14 18:40:12


#include<bits/stdc++.h>
                       #pragma GCC optimize(2)
using namespace std;
int n,m,s=0;
bool l[10005];
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cin>>n>>m;
    int a[m],b[m];
    for(int i=1;i<=m;++i)
    {
        cin>>a[i]>>b[i];
        for(int j=0;j<=b[i]-a[i];++j)
        {
            l[j+a[i]]=1;
        }
    }
    for(int i=0;i<=n;++i)
    {
        if(l[i]==0)s++;
    }cout<<s;
    return 0;
}

多写了个O2优化就不行了?删了后AC,有点迷惑

by xudongyi1 @ 2024-07-14 18:46:27

@zsx_herobrine 遍历到 m 了,有UB。


by xudongyi1 @ 2024-07-14 18:46:58

数组开大一点就好了


by dengchengyu @ 2024-07-14 18:47:53

@zsx_herobrine

Luogu 不能在代码中打开编译器优化,如果有需要可以在提交时勾选“开启O2”选项。


by zsx_herobrine @ 2024-07-15 14:59:31

@dengchengyu 哟西


|