m0_66683108 2022-08-28 09:57 采纳率: 50%
浏览 39
已结题

求解答,补全的地方要填什么?

求解答
安排教室 学校仅有的一间社团活动教室需要同学申请通过后才能使用,同一时段内,只有一个社团可以使用社团活动教室。

有 nn 个社团分别提出了申请,每个社团想使用的时段都是连续的,第 ii 个社团申请的使用时段为从第 a_ia i节课上课时到第 b_ib i 节课下课时的这段时间。

显然,如果有两个社团的申请时段有重合,那么他们的申请不可能都被通过。现在,由你来决定每个申请是否被通过,问最多有多少个社团能够使用教室。
输入格式
从标准输入读入数据。

第一行输入一个正整数 nn(n\le1000n≤1000)。

接下来 nn 行,每行输入两个正整数 a_i,b_ia
i

,b
i

(a_i\le b_i\le 10^6a
i

≤b
i

≤10
6
)。

输出格式
输出到标准输出。

输出一个整数,表示最多有多少个社团能够使用教室。
#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
int n;
struct Seg{
int a, b;
} c[N];
bool cmp(Seg x, Seg y){
/【请补全】/
}
int main() {
scanf("%d", &n);
for(int i = 1; i <= n; ++i)
scanf("%d%d", &c[i].a, &c[i].b);
sort(c + 1, c + n + 1, cmp);

int ans = 0, lim = 0;
for(int i = 1; i <= n; ++i){
    if(/*****【请补全】*****/){
        ++ans;
        /*****【请补全】*****/
    }
}
printf("%d\n", ans);
return 0;

}

解答对了肯定采纳

  • 写回答

2条回答 默认 最新

  • 烟雨龙升 2022-08-28 10:40
    关注
    
    #include <bits/stdc++.h>
    using namespace std;
    const int N = 1005;
    int n;
    struct Seg
    {
        int a, b;
    } c[N];
    bool cmp(Seg x, Seg y)
    {
        return x.b < y.b;
    }
    int main()
    {
        scanf("%d", &n);
        for (int i = 1; i <= n; ++i)
            scanf("%d%d", &c[i].a, &c[i].b);
        sort(c + 1, c + n + 1, cmp);
    
        int ans = 0, lim = 0;
        for (int i = 1; i <= n; ++i)
        {
            if (c[i].a >= lim)
            {
                ++ans;
                lim = c[i].b;
            }
        }
        printf("%d\n", ans);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月28日
  • 已采纳回答 8月28日
  • 修改了问题 8月28日
  • 创建了问题 8月28日

悬赏问题

  • ¥15 在ISIS中什么是IP从地址
  • ¥15 压测时,并发量过高时,响应时间出现尖刺
  • ¥15 关于vmprotect3.8.4虚拟文件一项
  • ¥15 在不用IT调试的情况下怎样能连外网
  • ¥20 C#调用虚拟键盘TabTip.exe
  • ¥15 Qt4代码实现下面的界面
  • ¥15 CCS离散化传递函数与仿真不一致
  • ¥15 prism提示我reinstall prism 如何解决
  • ¥15 asp.core 权限控制怎么做,需要控制到每个方法
  • ¥20 while循环中OLED显示中断中的数据不正确