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 解决了 谢谢:)