题目信息

题目类型
入门级
题目年份
2020
题目题型
单选题
关 键 词
最小区间覆盖

题目题干

第40题aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

(最小区间覆盖)给出 n 个区间,第 i 个区间的左右端点是[ai,bi]。现在要在这些区间中选出若干个,使得区间 [0,m][0,m] 被所选区间的并覆盖(即每一个 0≤i≤m 都在某个所选的区间中)。保证答案存在,求所选区间个数的最小值。aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

输入第一行包含两个整数 n 和 m(1≤n≤5000, 1≤m≤109)。aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

接下来 n 行,每行两个证书 ai,bi(0≤ai,bi≤m)。aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

提示:使用贪心法解决这个问题。先用 Θ(n^2) 的时间复杂度排序,然后贪心选择这些区间。aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

试补全程序。aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. #include <iostream> 
  2. using namespace std; 
  3. const int MAXN = 5000; 
  4. int n, m; 
  5. struct segment { int a, b; } A[MAXN]; 
  6. void sort() // 排序 
  7.     for (int i = 0; i < n; i++) 
  8.         for (int j = 1; j < n; j++) 
  9.             if (①) 
  10.             { 
  11.                 segment t = A[j]; 
  12.                 ② 
  13.             } 
  14. int main() 
  15.     cin >> n >> m; 
  16.     for (int i = 0; i < n; i++) 
  17.         cin >> A[i].a >> A[i].b; 
  18.     sort(); 
  19.     int p = 1; 
  20.     for (int i = 1; i < n; i++) 
  21.         if (③) 
  22.             A[p++] = A[i]; 
  23.     n = p; 
  24.     int ans = 0, r = 0; 
  25.     int q = 0; 
  26.     while (r < m) 
  27.     { 
  28.         while (④) 
  29.             q++; 
  30.         ⑤; 
  31.         ans++; 
  32.     } 
  33.     cout << ans << endl; 
  34.     return 0; 
 

② 处应填( )aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
aZD100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 

答案解析

相关题目

第41题 (最小区间覆盖)给出 n 个区间,第 i 个区间的左右端点是[ai,bi]。现在要在这些区间中选出若干个,使得区间 [0,m][0,m] 被所选区间的并覆盖(即每一个 0≤i≤m 都在某个
第40题 (最小区间覆盖)给出 n 个区间,第 i 个区间的左右端点是[ai,bi]。现在要在这些区间中选出若干个,使得区间 [0,m][0,m] 被所选区间的并覆盖(即每一个 0≤i≤m 都在某个
第39题 (最小区间覆盖)给出 n 个区间,第 i 个区间的左右端点是[ai,bi]。现在要在这些区间中选出若干个,使得区间 [0,m][0,m] 被所选区间的并覆盖(即每一个 0≤i≤m 都在某个
第38题 (质因数分解)给出正整数 n,请输出将 n 质因数分解的结果,结果从小到大输出。 例如:输入n=120,程序应该输出 2 2 2 3 5,表示 120=2×2×2×3×5。输入保证 2≤
第37题 (质因数分解)给出正整数 n,请输出将 n 质因数分解的结果,结果从小到大输出。 例如:输入n=120,程序应该输出 2 2 2 3 5,表示 120=2×2×2×3×5。输入保证 2≤
第36题 (质因数分解)给出正整数 n,请输出将 n 质因数分解的结果,结果从小到大输出。 例如:输入n=120,程序应该输出 2 2 2 3 5,表示 120=2×2×2×3×5。输入保证 2≤
第35题 (质因数分解)给出正整数 n,请输出将 n 质因数分解的结果,结果从小到大输出。 例如:输入n=120,程序应该输出 2 2 2 3 5,表示 120=2×2×2×3×5。输入保证 2≤
第34题 (质因数分解)给出正整数 n,请输出将 n 质因数分解的结果,结果从小到大输出。 例如:输入n=120,程序应该输出 2 2 2 3 5,表示 120=2×2×2×3×5。输入保证 2≤
第33题 #include <algorithm>  #include <iostream>  using namespace std;     int n;  int d[5
第32题 #include <algorithm>  #include <iostream>  using namespace std;     int n;  int d[5

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!
  • 温馨提示:本文属于积分文章,需要充值获得积分或升级VIP会员,也可在会员中心投稿获取。

猜你喜欢