题解(附加每一步注释)
2024-07-13 20:57:59
发布于:上海
4阅读
0回复
0点赞
#include<iostream>
#include<cstring>
using namespace std;
const int N=1e4+4;
int l,m;
int u[105],v[105];//u,v记录每一步的起点以及终点
int t[N];//t[N]储存树的存在情况
int cnt;//cnt记录最终剩余树的数量
int main(){
cin>>l>>m;
for(int i=1;i<=m;i++){
cin>>u[i]>>v[i];
}//存入起点和终点
for(int i=0;i<=l;i++){
t[i]=1;
}//初始化,因为刚开始所有树都存在,所以存为1
//这步也可以简化为memset(t,1,sizeof t);
//memset函数头文件为cstring,时间复杂度为O(n)
for(int i=1;i<=m;i++){
for(int j=u[i];j<=v[i];j++){
t[j]=0;//每一步移走的树,将这些树的存在记为0,即为不存在
}
}
for(int i=0/*包括端点的两棵树,所以从0开始*/;i<=l;i++){
if(t[i]) cnt++;//判断树是否存在
}
cout<<cnt;//输出最终结果
return 0;//记得养成好习惯哦
}
全部评论 1
内存没我少,菜(我weh的小号)
2024-10-08 来自 上海
0
有帮助,赞一个