日记
2024.4.11
P1047 [NOIP2005 普及组] 校门外的树
#include<stdio.h>
void f(int *arry){
for(int i=0;i<10001;i++){
arry[i]=0;
}
int total=0,num=0;
int m_1=0,m_2=0;
scanf("%d%d",&total,&num);
for(int i=0;i<num;i++){
scanf("%d%d",&m_1,&m_2);
for(int j=m_1;j<=m_2;j++){
arry[j]=1;
}
}
int c=0;
for(int i=0;i<=total;i++){
if(arry[i]==0) c++;
}
printf("%d",c);
}
int main(){
int arry[10001];
f(arry);
return 0;
}
错误原因:直接用Size进行标记,忽略了0这个特殊数据,如果0处也没有种树,则a[0]=0,也会被c++;
改进:以后标记应用特殊数值或符号。