_hacket @ 2024-05-16 15:15:54
#include<stdio.h>
int main(){
int n,m,count=0;
scanf("%d %d",&n,&m);
int l[n+1]={0};
for(int i=0;i<m;i++){
int a,b;
scanf("%d %d",&a,&b);
for(int j=a-1;j<=b-1;j++)
l[j]=1;
}
for(int i=0;i<n+1;i++)
if(l[i]==0)
count++;
printf("%d\n",count);
}
第一个测试点错了,怎么错的?
by ___Furina___ @ 2024-05-16 15:45:13
@_hacket
#include<stdio.h>
int main(){
int n,m,count=0;
scanf("%d %d",&n,&m);
int l[n+2]={0};
for(int i=0;i<m;i++){
int a,b;
scanf("%d %d",&a,&b);
for(int j=a;j<=b;j++)
l[j]=1;
}
for(int i=0;i<=n;i++)
if(l[i]==0)
count++;
printf("%d\n",count);
}
提一嘴,不建议使用 int l[n+1]={0};
建议开静态数组,例如 int l[10010]={0};
by ___Furina___ @ 2024-05-16 15:46:16
@_hacket 你的代码错在如果种树的左端点是从