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;
}
语言:
C++
GESP真题
五级
2025.9
单选题号:
10
EXY-SC-1329
第 172 题
唯一分解定理描述的是( )。
语言:
C++
GESP真题
五级
2025.9
单选题号:
9
EXY-SC-1328
第 173 题
关于埃氏筛和线性筛的比较,下列说法错误的是( )。
语言:
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;
}
语言:
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;
}
语言:
C++
GESP真题
五级
2025.9
单选题号:
6
当前页显示 171 - 175
,共 1260 道单选题