求助(根本发现不了问题

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

yoyoSGH @ 2023-11-25 10:29:30

#include<bits/stdc++.h>
using namespace std;
int main() {
    long long l,m,sum=0;
    bool x[10003]; 
    scanf("%lld",&l,&m);
    for(long long i=1;i<=m;i++)
    {
        long long u,v;
        scanf("%lld%lld",&u,&v);
        for(u;u<=v;u++) x[u]=0; 
    }
    for(long long i=1;i<=l;i++)
    {
        x[i]==1?sum++:sum;
    }
    printf("%lld",sum);
}

by LaoXu666 @ 2023-11-25 10:38:57


by LaoXu666 @ 2023-11-25 10:43:14

而且你没有计算位置 0

马路的一端在数轴 0 的位置,另一端在

$0 , 1 , 2 , … , l$,都种有一棵树。

by heyx0201 @ 2023-11-25 10:43:42

@yoyoSGH

#include<bits/stdc++.h>
using namespace std;
int main() {
    long long l,m,sum=0;
    bool x[10003]; 
    memset(x, 1, sizeof(x));
    scanf("%lld%lld",&l,&m);
    for(long long i=1;i<=m;i++)
    {
        long long u,v;
        scanf("%lld%lld",&u,&v);
        for(;u<=v;u++) x[u]=0; 
    }
    for(long long i=0;i<=l;i++)
    {
        x[i]==1?sum++:sum;
    }
    printf("%lld",sum);
}
  1. 你没有一开始把 x 数组变成全部是 1
  2. ntm输入写了两个变量格式那里就写一个 lld 是吧

by LaoXu666 @ 2023-11-25 10:45:30

对于 100\% 的数据,保证 1 \leqslant l ≤ 10^4

$0\leqslant u\leqslant v \leqslant l$。

|