求助除了第一个其他全wa

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

abundan @ 2023-11-04 16:35:58

#include <bits/stdc++.h>
using namespace std;
int m,n,a[100][2],b[10000],t=0;
int main(){
    cin>>n>>m;
    for(int i=0;i<m;i++){
        for(int j=0;j<2;j++){
            scanf("%d",&a[i][j]);
        }
    }
    for(int i=0;i<m;i++)
    {
        for(int j=a[i][0];j<=a[i][1];j++){
            b[j]=1;
        }
    }
    for(int i=0;i<=n;i++){
        if(b[i]==0){
            t++;
        }
    }
    printf("%d",t);
    return 0;
}

by dqs147852 @ 2023-11-04 16:46:10

t+=b[i] 把最后一个循环的if删了试试


by dqs147852 @ 2023-11-04 16:47:00

@dqs147852 t++改成加等b[i]


by dqs147852 @ 2023-11-04 16:47:33

试下,我也不太确定


by onlyfiee @ 2023-11-04 16:51:04

@abundon b数组开成10001


by onlyfiee @ 2023-11-04 16:55:03

@abundon l是在区间 [1,10^4],而数组是存储是属于 [0,10^4-1]的,会导致数组元素越界,推荐开数组的时候都比原题多开大一点。

以下是你的代码修改后的记录https://www.luogu.com.cn/record/133321897


by abundan @ 2023-11-27 21:00:06

@onlyfiee 谢谢大佬成功了


|