莫名其妙WA

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

wky_wsy @ 2024-09-26 22:52:01

#include <iostream>
#include <cstdio>
#include <cmath>
#include <map>
#include <vector>
#include <algorithm>
#include <string>
#include <cstring>
#define int long long
using namespace std;
signed main(){
    int l,m,q,z;
    cin>>l>>m;
    int c=l+1,a[l+1]={1};
    while(m){

        scanf("%d%d",&q,&z);
        for(int i=q;i<=z;i++){
            if(a[i]==1){
                --c;
                a[i]=0;
            }
        }
        m--;
    }
    cout<<c;
    return 0;
}

by little_q_exist @ 2024-09-27 22:22:13

1.输入q和z的时候没有空格

"%d %d"这样才对

2.数组只给一个变量赋了值,用一个for循环把0到i的元素都赋值为1

3.

if(a[i]==1){
                --c;
                a[i]=0;
}

这段代码当有树的地方c自减1,那么c实际上统计的是没有树的数量

4.

a[i]=0;

写到if语句外面,for循环里面,这样后面判断有没有树的代码才能统计全


by little_q_exist @ 2024-09-27 22:23:03

@wky_wsy


by little_q_exist @ 2024-09-27 22:32:41

补一句关于数组初始化的问题,

a[l+1]={1};

这是把a[0]初始化为1,其他都是0,而 ={0},则是把所有元素初始化为0


|