样例输出的3,改过但不知道哪里有问题。
查看原帖
样例输出的3,改过但不知道哪里有问题。
981833
Joseph_J楼主2023/9/6 20:54

rt,我将树的状态(已经被砍或未被砍)设为bool,个人认为能避免重叠的情况,请dalao们看看有没有问题

#include<bits/stdc++.h>

using namespace std;
int l,m,num=0;//num为计数器 
int u[10010],v[10086];
bool tree[10010];//判断该位置树是否被砍 
int main(){
	
	cin>>l>>m;
	memset(tree,1,sizeof(0));//全部的树最开始都没被砍 
	for(int i=1;i<=m;i++) cin>>u[i]>>v[i];
	
	//坐标内的树被砍,被砍的树==(差+1) 
	for(int i=1;i<=m;i++){
		for(int q=u[i]-1;q<=v[i];q++){
			
			tree[q]=0;//被砍 
		}
	}
	
	for(int i=1;i<=l;i++){
		
		if(tree[i]==1) num++;//还健在就计数 
	}
	cout<<num;
	
	return 0; 
}
2023/9/6 20:54
加载中...