(已经AC了)为什么输入5,2,1,3,2,4;输出的是2?不该是1吗?

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

gordon321 @ 2023-06-09 14:46:50

w


by gordon321 @ 2023-06-09 14:47:46

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m,ans=0;
    int x,y;
    cin>>n>>m;
    int a[n+1];
    for(int i=0;i<n+1;i++){
        a[i]=0;
    }
    for(int i=1;i<=m;i++){
        cin>>x>>y;
        for(int j=x;j<=y;j++){
        //  cout<<j<<endl;
            a[j]=1;
        }
    } 
    for(int i=0;i<=n;i++){
        if(a[i]==0){
            //cout<<"x"<<i<<"x"<<endl;
            ans++;
        }else{
            //cout<<"0";
        }
    } 
    cout<<ans;
    return 0;   
}

by Ferdina_zcjb @ 2023-06-09 14:51:08

@gordon321

首先,a[n+1]是什么鬼,


by Ferdina_zcjb @ 2023-06-09 14:51:48

@gordon321

不能这样定义数组,a[]里面只能是常数


by gordon321 @ 2023-06-09 15:00:05

数组从0开始,树从1开始所以末端不是要加1吗


by Ferdina_zcjb @ 2023-06-09 15:01:45

@gordon321

或许,你理解就错了,题面说0~l,所以一共l+1个树,你给的数据是0~5中已有1~4,自然是0和5两个(代码没问题)


by Ferdina_zcjb @ 2023-06-09 15:03:11

@gordon321

a[变量]X a[常量]√


by gordon321 @ 2023-06-09 15:04:48

谢谢谢谢谢谢


|