[LibreOJ]P10000 活动安排
https://ajax.loj.ac/problem/10000
活动安排(
本题采用贪心的方法:若希望有更多活动可以举行,就要找最早结束的活动。而并不是最早开始的,那样的话反例很容易就可以举出:一个从头到尾超长的活动....
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
struct time
{
int s;
int e;//用结构体储存开始和结束时间。
}t[1001];
bool cmp(struct time a,struct time b)
{
return a.e<b.e;//比较结束时间
}
int main()
{
int n,i,cur=0,sum=0,c;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d%d",&t[i].s,&t[i].e);//读入
sort(t+1,t+n+1,cmp);
while(1)
{
for(i=1;i<=n;i++)
{
c=0;//标记的变量
if(t[i].s>=cur)
{
cur=t[i].e;//时间放到举行完活动时
c++;
sum++;
break;
}
}
if(c==0)
break;//不满足上面那个就说明没有更多时间了
}
printf("%d",sum);//输出
return 0;
}
这个奇怪的OJ是一本通提高的配套OJ.....
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步