CVcoding @ 2023-07-27 21:05:18
#include<iostream>
using namespace std;
int l,m,cnt;
int main(){
cin>>l>>m;
int list[l],uv[m][2];//树和马路
cnt=l;
for(int i=0;i<m;i++){
cin>>uv[i][0]>>uv[i][1];//起始和结尾
//cout<<"try"<<endl;
}
for(int i=0;i<m;i++){//每段
for(int j=uv[i][0];j<uv[i][1];j++)//遍历每段,0是有树,1是无树
list[j] = 1;
}
for(int i=0;i<l;i++)
if(list[i]==1)
cnt--;
cout<<cnt;
return 0;
}
by xvl_ @ 2023-07-27 21:10:32
list 数组需要初始化
by xvl_ @ 2023-07-27 21:12:39
@CVcoding
by Shaojinshuo @ 2023-07-27 21:34:58
@CVcoding
1.最好把int list[l],uv[m][2];改成int list[1005],uv[105][2];
2.把int list[1005],uv[105][2];移到主函数外面(自动清零)
by CVcoding @ 2023-07-28 19:34:08
#include<iostream>
using namespace std;
int l,m,cnt=1005;
int main(){
int list[1005],uv[105][2];
cin>>l>>m;
//int list[l],uv[m][2];//树和马路
for(int i=0;i<l;i++)
list[i] = 1;
for(int i=0;i<m;i++){
cin>>uv[i][0]>>uv[i][1];//起始和结尾
//cout<<"try"<<endl;
}
for(int i=0;i<m;i++){//每段
for(int j=uv[i][0];j<uv[i][1];j++)//遍历每段,1是有树,0是无树
list[j] = 0;
}
for(int i=0;i<l;i++)
if(list[i]==0)
cnt--;
cout<<cnt;
return 0;
}
@Shaojinshuo
by CVcoding @ 2023-07-28 19:44:15
@xvl_ 大佬为什么要把倒数两个for循环的<改成<=?
by xvl_ @ 2023-07-28 20:02:50
@CVcoding
题目中有写
by xvl_ @ 2023-07-28 20:03:05