通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"CSP考试" 试卷中 CSP-J1入门级初赛试卷[2020] 中有题目如下:
第1题
(最小区间覆盖)给出 n 个区间,第 i 个区间的左右端点是[ai,bi]。现在要在这些区间中选出若干个,使得区间 [0,m][0,m] 被所选区间的并覆盖(即每一个 0≤i≤m 都在某个所选的区间中)。保证答案存在,求所选区间个数的最小值。
输入第一行包含两个整数 n 和 m(1≤n≤5000, 1≤m≤109)。
接下来 n 行,每行两个证书 ai,bi(0≤ai,bi≤m)。
提示:使用贪心法解决这个问题。先用 Θ(n^2) 的时间复杂度排序,然后贪心选择这些区间。
试补全程序。
#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 (①) { segment t = A[j]; ② } } 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[p++] = A[i]; n = p; int ans = 0, r = 0; int q = 0; while (r < m) { while (④) q++; ⑤; ans++; } cout << ans << endl; return 0; }
② 处应填( )
A[j + 1] = A[j]; A[j] = t;
A[j - 1] = A[j]; A[j] = t;
A[j] = A[j + 1]; A[j + 1] = t;
A[j] = A[j - 1]; A[j - 1] = t;
所属试卷:CSP-J1入门级初赛试卷[2020]
有如下程序(友元函数参数格式相关),下列关于程序的描述
以下关于数据维度的描述,错误的是( )。
p、q 和 v 都是二叉树 T 中的结点,v 有两个孩
设有如下关系表:则下列操作正确的是( )。
以下叙述中错误的是。
有以下程序若运行时从键盘上输入OPEN THE DOO
有如下程序:程序运行后的输出结果是。
若变量已正确定义则以上for循环。
请在下面程序的横线处填上适当内容,以使程序完整,并使程
用于删除数据库表test中所有name字段值为’100
以下叙述中错误的是( )。
若有定义语句:则表达式:a+(int)(b/3*(in
下面程序功能是:从键盘读入一个可以带空格的字符串(假设
下列那一个指令可以切换使用者身份( )
分别叙述linux对IDE硬盘和usb接口的移动硬盘的
升级安装wu-ftpd软件包参考答案:rpm –Uvh
为脚本程序指定执行权的命令及参数是( )。
在Linux的两种链接文件中,只能实现对文件链接的一种
为student表增加一个年龄字段正确的语法为。
某运算类型指令中有一个地址码为通用寄存器编号,对应通用
若char w,int x,float y,doubl
逗号表达式(a=3*5,a*4),a+5的值为____
对于一个 1到n 的排列 P(即 1到 n中每一个数在
Lucia 和她的朋友以及朋友的朋友都在某社交网站上注
一棵二叉树如右图所示,若采用顺序存储结构,即用一 维数
输出:( )
本题中,我们约定布尔表达式只能包含p, q, r三个布
输入: 9 19 29 39输出: _________
输入: 66553输出: ______________
近20年来,许多计算机专家都大力推崇递归算法,认为它是
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2