感觉思路没什么问题就是wa TAT

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

uitwaaine @ 2023-10-28 09:50:18


int main() 
{
    int l,m,a[1000];
    int begin,end,count=0;
    scanf("%d %d",&l,&m);
    for(int i=0;i<=l;i++){//遍历数组 让所有树为1
        a[i]=1;
    }
    for(int i=1;i<=m;i++){
        scanf("%d %d",&begin,&end);
        for(int j=begin;j<=end;j++){
            a[j]=0;
        }
    }
    for(int i=0;i<=l;i++){
        if(a[i]==1)
        count++;
    }
    printf("%d",count);
   return 0;
}
把有树定义为1 
然后没有树就变为0
算树的个数

by venti_de_dog @ 2023-10-28 10:01:22

数组开小了罢应该是,改一下就过了

#include<bits/stdc++.h>
using namespace std;
#define itn int //宏替换
#define ll long long //宏替换
int l,m,a[100000];//把数组在int main外面声明,然后改成了100000
int main()
{

    int begin,end,count=0;
    scanf("%d %d",&l,&m);
    for(int i=0;i<=l;i++){
        a[i]=1;
    }
    for(int i=1;i<=m;i++){
        scanf("%d %d",&begin,&end);
        for(int j=begin;j<=end;j++){
            a[j]=0;
        }
    }
    for(int i=0;i<=l;i++){
        if(a[i]==1)
        count++;
    }
    printf("%d",count);
    return 0;
}

by venti_de_dog @ 2023-10-28 10:06:14

题目数据范围是10*10^4,应该至少开10000


by uitwaaine @ 2023-10-28 18:44:55

@venti_de_dog 解决了 谢谢:)


|