456

噢莫加纳加加加  •  2天前


#include<bits/stdc++.h>using 
	namespace std;int n;
struct node {    
	int s;//开始时间    
	int t;//结束时间
};
node a[200005];
bool cmp(node x, node y) {
	//比较函数   
	return x.t < y.t;
	//结束时间早的排在前面
}
int ans = 0;
int main() {    
	cin >> n;    
	for(int i = 1; i <= n; i++) {        
		cin >> a[i].s >> a[i].t;    
	}    
	sort(a + 1, a + n + 1, cmp);//排序    
	int t = 0;//可以开始录制的最早时间    
	for(int i = 1; i <= n; i++) {//遍历每个节目        
		if (a[i].s >= t) {//如果开始时间大于等于可以开始录制的时间            
			ans++;//录之            
			t = a[i].t;//更新可以开始录制时间为节目结束时间        
		}    
	}    
	cout << ans;    
	return 0;
}

评论:

#include<bits/stdc++.h>
using namespace std;
int a[1000005];//a[i]表示第i天需要使用教室的人数
int n;
int ans=0;
int main() {    
	scanf("%d",&n);    
	for (int i=1;i<=n;i++){        
		int s,t;        
		scanf("%d %d",&s,&t);        
		a[s]++;//开始使用时增加一人        
		a[t+1]--;//结束使用后减少一人    
	}    
	int sum=0;    
	for (int i=1;i<=1000000;i++){//做前缀和        
		sum+=a[i];        
		ans=max(ans,sum);//求最大值    
	}    
	printf("%d",ans);    
	return 0;
}

噢莫加纳加加加  •  2天前
#include<bits/stdc++.h>
using namespace std;
int a[1000005];//a[i]表示第i天需要使用教室的人数
int n;
int ans=0;
int main() {    
	scanf("%d",&n);    
	for (int i=1;i<=n;i++){        
		int s,t;        
		scanf("%d %d",&s,&t);        
		a[s]++;//开始使用时增加一人        
		a[t+1]--;//结束使用后减少一人    
	}    
	int sum=0;    
	for (int i=1;i<=1000000;i++){//做前缀和        
		sum+=a[i];        
		ans=max(ans,sum);//求最大值    
	}    
	printf("%d",ans);    
	return 0;
}

噢莫加纳加加加  •  2天前

请先登录,才能进行评论