题目信息

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

题目题干

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

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

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

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

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

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

  1. #include <iostream> 
  2.   
  3. using namespace std; 
  4.   
  5. const int MAXN = 5000; 
  6. int n, m; 
  7. struct segment { int a, b; } A[MAXN]; 
  8.   
  9. void sort() // 排序 
  10.     for (int i = 0; i < n; i++) 
  11.         for (int j = 1; j < n; j++) 
  12.             if (①) 
  13.             { 
  14.                 segment t = A[j]; 
  15.                 ② 
  16.             } 
  17.   
  18. int main() 
  19.     cin >> n >> m; 
  20.     for (int i = 0; i < n; i++) 
  21.         cin >> A[i].a >> A[i].b; 
  22.     sort(); 
  23.     int p = 1; 
  24.     for (int i = 1; i < n; i++) 
  25.         if (③) 
  26.             A[p++] = A[i]; 
  27.     n = p; 
  28.     int ans = 0, r = 0; 
  29.     int q = 0; 
  30.     while (r < m) 
  31.     { 
  32.         while (④) 
  33.             q++; 
  34.         ⑤; 
  35.         ans++; 
  36.     } 
  37.     cout << ans << endl; 
  38.     return 0; 
⑤处应填( )K9x100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
A. r = max(r, A[q + 1].b)K9x100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
B. r = max(r, A[q].b)K9x100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
C. r = max(r, A[q + 1].a)K9x100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
D. q++

答案解析

相关题目

第43题 (最小区间覆盖)给出 n 个区间,第 i 个区间的左右端点是[ai,bi]。现在要在这些区间中选出若干个,使得区间 [0,m][0,m] 被所选区间的并覆盖(即每一个 0≤i≤m 都在某个
第42题 (最小区间覆盖)给出 n 个区间,第 i 个区间的左右端点是[ai,bi]。现在要在这些区间中选出若干个,使得区间 [0,m][0,m] 被所选区间的并覆盖(即每一个 0≤i≤m 都在某个
第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≤

提示声明

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

猜你喜欢