CSP-J 2020 初赛试题解析(第三部分:完善程序(二))

完善程序二完整代码:

   #include <iostream>
   using namespace std;
   const int MAXN = 5000;
   int n, m;
   struct segment { int a, b; } A[MAXN];
 
   void sort() // 排序
   {
     for (int i = 0; i < n; i++)
         for (int j = 1; j < n; j++)
             if (A[j].a<A[j-1].a)
             {
               segment t = A[j];
               A[j]=A[j-1];A[j-1]=t;
             }
   }
 
   int main()
   {
     cin >> n >> m;
     for (int i = 0; i < n; i++)
       cin >> A[i].a >> A[i].b;
     sort();
     int p = 1;
     for (int i = 1; i < n; i++)
       if (A[i].b>A[p-1].b)
         A[p++] = A[i];
     n = p;
     int ans =0, r = 0;
     int q = 0;
     while (r < m)
     {
       while (q+1<n&&A[q+1].a<=r)
         q++;
       r=max(r,A[q].b);
       ans++;
     }
     cout << ans << endl;
     return 0;
   }

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值