题目编号
语言
全部语言
等级
全部等级
知识点
选择知识点 (0)
找到 1260 道单选题
EXY-SC-1330
第 171 题

给定一个 $n \times n$ 的矩阵 matrix,矩阵的每一行和每一列都按升序排列。函数 countLE 返回矩阵中第 $k$ 小的元素,则两处横线上应分别填写( )。

// 统计矩阵中 <= x 的元素个数:从左下角开始
int countLE(const vector<vector<int>>& matrix, int x) {
    int n = (int)matrix.size();
    int i = n - 1, j = 0, cnt = 0;
    while (i >= 0 && j < n) {
        if (matrix[i][j] <= x) {
            cnt += i + 1;
            ++j;
        } else {
            --i;
        }
    }
    return cnt;
}
 
int kthSmallest(vector<vector<int>>& matrix, int k) {
    int n = (int)matrix.size();
    int lo = matrix[0][0];
    int hi = matrix[n - 1][n - 1];
 
    while (lo < hi) {
        int mid = lo + (hi - lo) / 2;
        if (countLE(matrix, mid) >= k) {
            _________________ // 在此处填入代码
        } else {
            _________________ // 在此处填入代码
        }
    }
    return lo;
}
A
hi = mid - 1;
lo = mid + 1;
B
hi = mid;
lo = mid;
C
hi = mid;
lo = mid + 1;
D
hi = mid + 1;
lo = mid;
语言: C++
GESP真题 五级
2025.9
单选题号: 10
EXY-SC-1329
第 172 题

唯一分解定理描述的是( )。

A

每个整数都能表示为任意素数的乘积

B

每个大于 1 的整数能唯一分解为素数幂乘积(忽略顺序)

C

合数不能分解为素数乘积

D

素数只有两个因子:1 和自身

语言: C++
GESP真题 五级
2025.9
单选题号: 9
EXY-SC-1328
第 173 题

关于埃氏筛和线性筛的比较,下列说法错误的是( )。

A

埃氏筛可能会对同一个合数进行多次标记

B

线性筛的理论时间复杂度更优,所以线性筛的速度往往优于埃氏筛

C

线性筛保证每个合数只被其最小质因子筛到一次

D

对于常见范围 ($n \leq 10^7$),埃氏筛因实现简单,常数较小,其速度往往优于线性筛

语言: C++
GESP真题 五级
2025.9
单选题号: 8
EXY-SC-1327
第 174 题
函数 linearSieve 实现线性筛法 (欧拉筛),横线处应填入( )。
vector<int> linearSieve(int n) {
    vector<bool> is_prime(n+1, true);
    vector<int> primes;
    for(int i = 2; i <= n; i++) {
        if(is_prime[i]) primes.push_back(i);
        for(int p : primes) {
            if(p * i > n) break;
            is_prime[p * i] = false;
            if(________) break;
        }
    }
    return primes;
}
A
i % p == 0
B
p % i == 0
C
i == p
D
i * p == n
语言: C++
GESP真题 五级
2025.9
单选题号: 7
EXY-SC-1326
第 175 题
函数 sieve 实现埃拉托斯特尼筛法 (埃氏筛),横线处应填入( )。
vector<bool> sieve(int n) {
    vector<bool> is_prime(n+1, true);
    is_prime[0] = is_prime[1] = false;
    for(int i = 2; i <= n; i++) {
        if(is_prime[i]) {
            for(int j = ______; j <= n; j += i) {
                is_prime[j] = false;
            }
        }
    }
    return is_prime;
}
A
i
B
i+1
C
i*2
D
i*i
语言: C++
GESP真题 五级
2025.9
单选题号: 6
当前页显示 171 - 175 ,共 1260 道单选题