选择题 共15道
判断题 共10道
编程题 共2道
假设双向循环链表包含头尾哨兵结点(不存储实际内容),分别为 head 和 tail ,链表中每个结点有两个指针域 prev 和 next ,分别指向该结点的前驱及后继结点。下面代码实现了一个空的双向循环链表,横线上应填的最佳代码是( )。
用以下辗转相除法(欧几里得算法)求gcd(84, 60)的步骤中,第二步计算的数是( )。
下述代码实现素数表的线性筛法,筛选出所有小于等于 的素数,横线上应填的最佳代码是( )。
对下面两个函数,说法错误的是( )。
考虑以下C++代码实现的快速排序算法,将数据从小到大排序,则横线上应填的最佳代码是( )。
下面代码实现了二分查找算法,在数组 arr 找到目标元素 target 的位置,则横线上能填写的最佳代码是( )。
小杨编写了一个如下的高精度乘法函数,则横线上应填写的代码为( )。
小 A 有 2n 件物品,小 B 和小 C 想从小 A 手上买走这些物品。对于第 i 件物品,小 B 会以 bi 的价格购买,而小 C 会以 ci 的价格购买。为了平均分配这 2n 件物品,小 A 决定小 B 和小 C 各自只能买走恰好 n 件物品。你能帮小 A 求出他卖出这 2n 件物品所能获得的最大收入吗?
第一行,一个正整数 n。
第二行,2n 个整数 b1, b2, ..., b2n。
第三行,2n 个整数 c1, c2, ..., c2n。
一行,一个整数,表示答案。
3 1 3 5 6 8 10 2 4 6 7 9 11
36
2 6 7 9 9 1 2 10 12
35
对于 20% 的测试点,保证 1≤n≤8。
对于另外 20% 的测试点,保证 0≤bi≤1,0≤ci≤1。
对于所有测试点,保证 1≤n≤105,0≤bi≤109,0≤ci≤109。
小 A 知道,对于质数 p 而言,p 的原根 g 是满足以下条件的正整数:
1 < g < p;
gp-1 mod p = 1;
对于任意 1 ≤ i < p-1 均有 gi mod p ≠ 1。
其中 a mod p 表示 a 除以 p 的余数。
小 A 现在有一个整数 a,请你帮他判断 a 是不是 p 的原根。
第一行,一个正整数 T,表示测试数据组数。
每组测试数据包含一行,两个正整数 a,p。
对于每组测试数据,输出一行,如果 a 是 p 的原根则输出 Yes,否则输出 No。
3 3 998244353 5 998244353 7 998244353
Yes Yes No
对于 40% 的测试点,保证 3 ≤ p ≤ 103。
对于所有测试点,保证 1 ≤ T ≤ 20,3 ≤ p ≤ 109,1 < a < p,p 为质数。