选择题 共15道
判断题 共10道
编程题 共2道
已知小写字母 b 的ASCII码为98,下列C++代码的输出结果是( )。
已知 a 为 int 类型变量, p 为 int * 类型变量,下列赋值语句不符合语法的是( )。
已知数组 a 的定义 int a[10] = {0}; ,下列说法不正确的是( )。
下列关于C++类的说法,错误的是( )。
下列关于有向图的说法,错误的是( )。
一棵二叉树的每个结点均满足:结点的左子树和右子树,要么同时存在,要么同时不存在。该树有197个结点,则其叶结点有多少个?( )
下列关于二叉树的说法,错误的是( )。
一个简单无向图有10个结点、6条边。在最差情况,至少增加多少条边可以使其连通?( )
一个哈希表,包括n个位置(分别编号0~(n-1)),每个位置最多仅能存储一个元素。该哈希表只有插入元素和查询两种操作,没有删除或修改元素的操作。以下说法错误的是( )。
以下关于动态规划的说法中,错误的是( )。
下面程序的输出为( )。
上题中程序的时间复杂度为( )。
下面 init_sieve 函数的时间复杂度为( )。
下列选项中,哪个不可能是下图的深度优先遍历序列( )。
表达式 5 ^ 3 的结果为 125 。
在C++语言中,函数定义和函数调用可以不在同一个文件内。
在 n个元素中进行二分查找,平均时间复杂度是O(logn) ,但须要事先进行排序。
unsigned long long 类型是C++语言中表达范围最大的非负整数类型之一,其表达范围是 。超出该范围的非负整数运算,将无法使用C++语言进行计算。
使用 math.h 或 cmath 头文件中的函数,表达式 log2(32) 的结果为 5 、类型为 int 。
C++是一种面向对象编程语言,C则不是。继承是面向对象三大特性之一。因此,使用C语言无法实现继承。
邻接表和邻接矩阵都是图的存储形式。邻接表在遍历单个顶点的所有边时,时间复杂度更低;邻接矩阵在判断两个顶点之间是否有边时,时间复杂度更低。
MD5是一种常见的哈希函数,可以由任意长度的数据生成128位的哈希值,曾广泛应用于数据完整性校验。中国科学家的系列工作首次发现了可实用的MD5破解方法。之后,MD5逐渐被其他哈希函数所取代。
递归调用在运行时会由于层数过多导致程序崩溃,可以通过循环配合栈缓解这一问题。
一个图中,每个顶点表达一个城市,连接两个顶点的边表达从一个城市到达另一个城市的一种交通方式。这个图可以用来表达交通网络,且是简单有向图。
武器购买
题面描述
商店里有n个武器,第i个武器的强度为pi。花费为ci。
小杨想要购买一些武器,满足这些武器的总强度不小于P,总花费不超过Q,小杨想知道是否满足条件的购买方案,如果有,最少花费又是多少。
输入格式
第一行包含一个正整数t,代表测试数据组数。
对于每组测试数据,第一行包含三个正整数n,P,Q,含义如题面所示。
之后n行,每行包含两个正整数pi,ci,代表武器的强度和花费。
输出格式
对于每组测试数据,如果存在满足条件的购买方案,输出最少花费,否则输出-1。
样例
燃烧
小杨有一颗包含n个节点的树,其中节点的编号从1到n。节点i的权值为ai。
小杨可以选择一个初始节点引燃,每个燃烧的节点会将其相邻节点中权值严格小于自身权值的节点也引燃,火焰会在节点间扩散直到不会有新的节点被引燃。
小杨想知道在合理选择初始节点的情况下,最多可以燃烧多少个节点。
第一行包含一个正整数 n,代表节点数量。
第二行包含 n个正整数 a1,a2,..,an,代表节点权值。
之后 n行,每行包含两个正整数ui,vi ,代表存在一条连接节点ui 和vi 的边。
输出一个正整数,代表最多燃烧的节点个数。