bupt_dhh @ 2023-08-16 23:31:18
#include<stdio.h>
int main(){
int l,m;
scanf("%d %d",&l,&m);
int len=l+1;
int a[len]={1};//把【0,l】区间的树标记为1
int b1,b2;
int i,j;
for(i=0;i<m;i++){
scanf("%d %d",&b1,&b2);//起始点和终止点
for(j=b1;j<=b2;j++)
a[j]=0;//把起始点到终止点之间区域的树标记为0
}
int num=0;
for(int i=0;i<len;i++){
if(a[i]==1)//遍历整个区间,如果标记为1则num总数加1
num++;
}
printf("%d",num);
return 0;
}
by Lysea @ 2023-08-16 23:39:42
@bupt_dhh
int a[len]={1};
的意思是把a[0]复制为1,如果要全部赋值为1,建议用memset
by bupt_dhh @ 2023-08-16 23:47:05
@Tryst 谢谢大佬!一边学一边忘,gpt也找不到错误,我要走的路真的还很长。
by xvl_ @ 2023-08-17 00:05:24
@Tryst
怎么用 memset
将数组全部赋值为
by Lysea @ 2023-08-17 09:44:23
@xvl_
@bupt_dhh
一时脑抽,不是memset,是fill
by Lysea @ 2023-08-17 09:44:34
QWQ
by bupt_dhh @ 2023-08-17 16:13:31
@xvl_ memset为int类型数组赋值应该只能0或-1,我把数组初始化为-1然后就过啦
by xvl_ @ 2023-08-17 16:49:18
@bupt_dhh
嗯