您的位置:首页 > 其它

Hdu 3697 Selecting courses(贪心+暴力)

2016-08-05 21:22 323 查看
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3697

思路:将课程按照右端点从小到大排序,相同时按照左端点从小到大排序。选课开始时间只能是0,1,2,3,4,开始时间确定后每次选课时间确定,暴力枚举即可。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=350;
struct Node
{
int l,r;
};
int n;
int v[maxn];
Node a[maxn];
int cmp(Node a,Node b)
{
if(a.r==b.r) return a.l<b.l;
else return a.r<b.r;
}
int main()
{
int ans;
while(scanf("%d",&n)==1&&n)
{
ans=0;
for(int i=0;i<n;i++)
scanf("%d%d",&a[i].l,&a[i].r);
sort(a,a+n,cmp);
for(int s=0;s<5;s++)
{
int tmp=0;
memset(v,0,sizeof(v));
for(int time=s;time<a[n-1].r;time+=5)
{
for(int i=0;i<n;i++)
{
if(v[i]) continue;
if(time<a[i].r&&time>=a[i].l)
{
v[i]=1;
tmp++;
break;
}
}
}
ans=max(ans,tmp);
}
printf("%d\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: