EXY-SC-0295
第 81 题
给定 n 根木头,第 i 根长度为 a[i]。要切成不少于 m 段等长木段,求最大可能长度,则横线上应填写( )。
const int MAXN = 100005;
long long a[MAXN]
int n, m;
bool check(long long x){
long long cnt = 0;
for(int i = 1; i <= n; i++){
if(x == 0) return true;
cnt += a[i] / x;
if(cnt >= m) return true;
}
return false;
}
int main(){
cin >> n >> m;
long long mx = 0;
for(int i = 1; i <= n; i++){
cin >> a[i];
mx = max(mx, a[i]);
}
long long l = 1, r = mx;
long long ans = 0;
while(l <= r){
long long mid = l + (r - l) / 2;
if(check(mid)){
ans = mid;
______________________
}else{
______________________
}
}
cout << ans << endl;
return 0;
}
语言:
C++
GESP真题
五级
2026.3
单选题号:
10
EXY-SC-0294
第 82 题
关于递归函数调用,下列说法错误的是( )。
语言:
C++
GESP真题
五级
2026.3
单选题号:
9
EXY-SC-0293
第 83 题
在升序数组中查找第一个大于等于 x 的位置,下面循环中横线应填( )。
int lowerBound(const vector<int>& a, int x){
int l = 0, r = a.size();
while(l < r){
int mid = l + (r - l) / 2;
if(a[mid] >= x) ________
else l = mid + 1;
}
return l;
}
语言:
C++
GESP真题
五级
2026.3
单选题号:
8
EXY-SC-0292
第 84 题
下面程序的运行结果为( )。
bool check(int n, int a[], int k, int dist) {
int cnt = 1;
int last = a[0];
for (int i = 1; i < n; i++) {
if (a[i] - last >= dist) {
cnt++;
last = a[i];
}
}
return cnt >= k;
}
int solve(int n, int a[], int k) {
std::sort(a, a + n);
int l = 0;
int r = a[n - 1] - a[0];
while (l < r) {
int mid = (l + r + 1) / 2;
if (check(n, a, k, mid))
l = mid;
else
r = mid - 1;
}
return l;
}
int main() {
int a[] = {1, 2, 8, 4, 9};
int n = 5;
int k = 3;
std::cout << solve(n, a, k) << std::endl;
return 0;
}
语言:
C++
GESP真题
五级
2026.3
单选题号:
7
EXY-SC-0291
第 85 题
埃氏筛中将内层循环从 j=i∗i 开始而不是 j=2∗i 的主要原因是( )。
vector<int> eratosthenes_sieve(int n) {
vector<bool> is_composite(n + 1, false);
vector<int> primes;
for (int i = 2; i <= n; i++) {
if (is_composite[i]) continue;
primes.push_back(i);
for (long long j = (long long)i * i; j <= n; j += i)
is_composite[j] = true;
}
return primes;
}
语言:
C++
GESP真题
五级
2026.3
单选题号:
6
当前页显示 81 - 85
,共 375 道单选题