GESP C++ 真题 · 逐题精解
首页C++七级真题 › 2026年3月 › 第7题

GESP 2026年3月 C++七级 单选题 第7题

C++七级单选题2026年3月第7题

所属知识点:贪心·分治·枚举 难度要求:— 考频:—

下面程序的运行结果为(a={1,2,8,4,9}, k=3):
bool check(int n,int a[],int k,int dist){
  int cnt=1, 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){
  sort(a,a+n);
  int l=0, 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;
}
// a={1,2,8,4,9}, n=5, k=3

正确答案:B

题目解析

二分答案+贪心:排序后 {1,2,4,8,9},求最大的 dist 使得能选………

完整解析为会员内容二级及以上的逐题精讲需开通 VIP。一级解析全部免费。前往 GESPPASS 解锁

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习