问题标题: 酷町堂:2802

0
0
已解决
康曦
康曦
中级光能
中级光能

我来送4分题思路啦

这很明显是一道贪心+结构体排序的题目

首先需要定义两个保存两个教室本节课结束时间的变量

然后判断下节课的开始时间是否大于本节课的结束时间

如果是,计数器++,结束时间变成下节课的结束时间

如果不是看看可不可以在另一个教室上

主函数:

int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].kkk>>a[i].jjj;
	}
	int k=0;
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=n;i++){
		if(a[i].kkk>=k1){
			k1=a[i].jjj;
			k++;
		}
		else if(a[i].kkk>=k2){
			k++;
			k2=a[i].jjj;
		}
		if(k2>k1) swap(k2,k1);
	}
	cout<<k;

cmp的排序规则是先按结束时间小的排再按开始时间大的排

(kkk是每节课的时间,jjj是每节课的结束时间,k1是第一个教室本节课的结束时间,k2是第二个教室的)

康曦在2020-10-07 14:59:31追加了内容


0
已采纳
张易晨
张易晨
新手光能
新手光能

你好毒,这不是和上次考试的第六题一样的吗,而且这个大部分人都做过了

0
0
0
我要回答