spessert @ 2024-03-24 09:55:42
#include<iostream>
using namespace std;
bool num[10000]; //有树为1,无数为0
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
num[i]=true;
}
for(int i=0;i<m;i++){
int a,b;
cin>>a>>b;
for(int j=a;j<=b;j++){
num[j]=false;
}
}
int count=0;
for(int i=1;i<=n;i++){
if(num[i]==true){
count++;
}
}
cout<<count+1;
return 0;
}
by peng_qian_xin @ 2024-03-24 10:12:09
1.有可能n为10000,这样的话num[n]会爆掉 2.最后应该是for(int i = 0;i <= n;i++),而不是for(int i = 1;i <= n;i++)...... cout << count + 1;,因为0那块不一定没种树,要是种了树的话,就会多一个,你只掉一个点是因为数据比较弱
by peng_qian_xin @ 2024-03-24 10:12:56
@spessert 过来看一下
by Fish_Love_Water @ 2024-03-24 10:13:14
@spessert 第7行初始化i应该等于0,18行同理
0坐标点也可以种一棵树的
以后做题其实一般来说答案不可能要再去+1才能得正确答案的( 求关 )
by spessert @ 2024-03-24 14:24:36
@Fish_Love_Water 懂了,是0那一块没考虑到,感谢大佬,已关