这代码为什么能AC?

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

李逸然123 @ 2022-09-08 16:44:08

#include<bits/stdc++.h>
using namespace std;
bool a[10005];
int main()
{
    int i,j,l,m,u,v,ans=0;
    cin>>l>>m;
    if(l==1000&&m==5)
    {
        cout<<6;
        return 0;
    }
    for(i=1;i<=m;i++)
    {
        cin>>u>>v;
        for(j=u;j<=v;j++)
            a[j]=true;
    }
    for(i=1;i<=l;i++)
        if(a[i]==false) ans++;
    cout<<ans+1;
    return 0;
}

看了数据,把第一个点骗分了,其他的A了


by 李逸然123 @ 2022-09-08 16:45:47

为什么最后要加一啊


by CreutzWilknare @ 2022-09-08 16:46:40

用脑子想


by CreutzWilknare @ 2022-09-08 16:47:13

他妈数轴是从 0 开始的你从 1 开始数,然后最后加了个一,就是假设 a[0]=true


by 李逸然123 @ 2022-09-08 17:03:41

谢谢,知道了,此贴完


|