51nod 1428 活动安排 贪心

版权声明:欢迎转载,转载请注明出处,如有错误,还望指出,谢谢 博客地址:https://blog.csdn.net/lanyanzhiji123asd https://blog.csdn.net/lanyanzhiji123asd/article/details/88074783

题目链接: http://www.51nod.com/Challenge/Problem.html#!#problemId=1428

排序之后

用vector容器模拟教室,每次记住教室使用结束时间

然后每次都找一个可以使用的教室

如果都有冲突就重新开一个教室

最后输出容器的size就行

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<string>
#include<vector>
#define ll long long 
using namespace std;

struct node
{
	int be,en;
}mp[10005];
vector<int>ans;
bool cmp(node a,node b)
{
	if(a.be==b.be)
		return a.en<b.en;
	return a.be<b.be;
}
int main()
{
	int n,i,j;
	while(cin>>n)
	{
		for(i=0;i<n;i++)
		{
			cin>>mp[i].be>>mp[i].en;
		}
		if(n==0)
		{
			cout<<"0"<<endl;
			continue;
		}
		sort(mp,mp+n,cmp);
		ans.push_back(mp[0].en);
		for(i=1;i<n;i++)
		{
			for(j=0;j<ans.size();j++)
			{
				if(mp[i].be>=ans[j])
				{
					ans[j]=mp[i].en;
					break;
				}
			}
			if(j==ans.size())
				ans.push_back(mp[i].en);
			sort(ans.begin(),ans.end());
		}
		cout<<ans.size()<<endl;
	}
}

猜你喜欢

转载自blog.csdn.net/lanyanzhiji123asd/article/details/88074783
今日推荐