活动安排
题目描述
设有n个活动的集合E={1,2,..,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si<fi。如果选择了活动i,则它在时间区间[si,fi)内占用资源。若区间[si,fi)与区间[sj,fj)不相交,则称活动i与活动j是相容的。也就是说,当fi≤sj或fj≤si时,活动i与活动j相容。选择出由互相兼容的活动组成的最大集合。
输入格式
第一行一个整数n(1≤n≤1000);
接下来的n行,每行两个整数si和fi。
接下来的n行,每行两个整数si和fi。
输出格式
输出互相兼容的最大活动个数
输入样例
4
1 3
4 6
2 5
1 7
输出样例
2
#include<iostream> #include<algorithm> using namespace std; struct hd{ // 定义结构体把开始和结束的时间设为属性。 int start, end; } a[1001]; bool cmp(hd x, hd y){ return x.end < y.end; } int main(){ int n, cnt=1; cin>>n; for(int i=0; i<n; i++) cin>>a[i].start>>a[i].end; sort(a, a+n, cmp); // 根据比较每个活动结束时间的大小并排序 int t=a[0].end; for(int i=1; i<n; i++){ if(a[i].start>=t){ // 满足要求。 cnt++; // 将该活动的结束时间重新赋值给time[0].end,继续比较。 t=a[i].end; } } cout<<cnt; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现