今年暑假不AC【题解】

写这篇文章的的时候心里有些难受,昨天晚上,和一个大佬学长,在线去AC,5道题我花了3个小时才AC了3道,他30分钟就AK了,心里还是挺扎心的,没事这也让我看清楚了差距,以后加油刷题吧,毕竟大学如果碌碌无为,那就不用去上大学了,这道题我以前写过,没想到还是卡了,说明理解不透!决定开始写题解博客!让自己刷题有个记录,就算马上来的天梯赛选拔失败,至少证明我来过!!!

题目链接:今年暑假不AC

AC代码:

#include<iostream>
#include<algorithm>
using namespace std;
struct time{
	int time_bigan,time_end;  //  以结构体来记录每个节目开场和结束时间
};
struct time ans[110];
bool cmp (time a,time b)
{
	return a.time_end<b.time_end;  //  按照结束时间以升序排序
 } 
int main()
{
	int n;
	while(cin>>n&&n)
	{
		for(int i=0;i<n;i++)
		    cin>>ans[i].time_bigan>>ans[i].time_end;
		sort(ans,ans+n,cmp);
		int flag=1,key=ans[0].time_end;   // 这一步很重要
		for(int i=1;i<n;i++)
		{
			if(key<=ans[i].time_bigan) 
			{
				flag++;   
				key=ans[i].time_end;  // 只有当if中的条件满足才可以交换结束时间
		}
		cout<<flag<<endl;
	}
	return 0;
 } 
 

//  输出结果:
12
1 3
3 4
0 7
3 8
15 19
15 20
10 15
8 18
6 12
5 10
4 14
2 9
5
0

--------------------------------
Process exited after 4.571 seconds with return value 0
请按任意键继续. . .


发布了28 篇原创文章 · 获赞 58 · 访问量 3890

猜你喜欢

转载自blog.csdn.net/weixin_45882303/article/details/104472317