根据dalao们的思路,理所当然地贪心

贪心思路:按结束时间排序
贴代码:


#include<bits/stdc++.h>
using namespace std;
int inp1,inp2,n,now=-999999999,tot;
struct tmpk
{
	int be,en;//即begin和end
}qj[1000010];//qj即区(qu)间(jian)
int cmp(tmpk a,tmpk b)
{
	return a.en<b.en;
	return a.be>b.be;//sort结构体排序,结束时间早的优先
}
int main()
{
	//freopen("inte.in","r",stdin);
	//freopen("inte.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>inp1>>inp2;
		qj[i].be=min(inp1,inp2);
		qj[i].en=max(inp1,inp2);//不知道开始在不在前
	}
	sort(qj+1,qj+n+1,cmp);//理所当然地sort
	for(int i=1;i<=n;i++)
	{
		if(qj[i].be<now)
		{
			tot++;
			//cout<<qj[i].be<<" "<<qj[i].en<<endl;//中间结果
		}
		else
		{
			now=qj[i].en;//now即目前时间
		}
	}
	cout<<n-tot;//总-排除的
	return 0;
}

拒绝copyQAQ

相关文章:

  • 2021-10-27
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
  • 2022-12-23
  • 2022-12-23
  • 2022-02-09
  • 2021-12-06
猜你喜欢
  • 2021-07-20
  • 2021-11-22
  • 2021-09-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-15
相关资源
相似解决方案