今年暑假不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
请按任意键继续. . .


 

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liknana

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值