#1817. 2025.06 DC5月测

2025.06 DC5月测

  1. 冒泡排序最好情况(数组已升序)的时间复杂度是:
    {{ select(1) }}
  • O(n2)\boldsymbol{O(n^2)}
  • O(n)\boldsymbol{O(n)}
  • O(nlogn)\boldsymbol{O(n\log n)}
  • O(logn)\boldsymbol{O(\log n)}
  1. 以下排序算法中,不稳定的是:
    {{ select(2) }}
  • 冒泡排序
  • 选择排序
  • 插入排序
  • 计数排序
  1. 插入排序效率最优的场景是:
    {{ select(3) }}
  • 数组完全逆序
  • 数组基本有序
  • 数组元素随机
  • 数组元素全相同
  1. 选择排序的第 ii 轮(从0开始)操作是:
    {{ select(4) }}
  • ii 个元素与后面所有元素比较并交换
  • 找到 in1i\sim n-1 中最小元素,与第 ii 个交换
  • ii 个元素插入到前面已排序部分
  • 相邻元素交换
  1. 以下排序算法中,时间复杂度不可能达到 O(n)\boldsymbol{O(n)} 的是: {{ select(5) }}
  • 插入排序(最好情况)
  • 冒泡排序(最好情况)
  • 选择排序(始终 O(n2)\boldsymbol{O(n^2)}
  • 计数排序(O(n+k)\boldsymbol{O(n+k)}
  1. 已知一维前缀和数组 sum\text{sum}sum[0]=0\text{sum}[0]=0sum[i]=a[1]++a[i]\text{sum}[i] = a[1]+\dots+a[i]),区间 \{[L, R]} 的和为:
    {{ select(6) }}
  • sum[R]sum[L1]{\text{sum}[R] - \text{sum}[L-1]}
  • sum[R+1]sum[L]\text{sum}[R+1] - \text{sum}[L]
  • sum[R]sum[L]\text{sum}[R] - \text{sum}[L]
  • sum[R+1]sum[L1]\text{sum}[R+1] - \text{sum}[L-1]
  1. 对一维数组做 区间 [L,R]\boldsymbol{[L, R]}vv 操作,差分数组 diff\text{diff} 的正确修改是:
    {{ select(7) }}
  • diff[L]+=v\text{diff}[L] += vdiff[R]=v\text{diff}[R] -= v
  • diff[L]+=v{\text{diff}[L] += v}diff[R+1]=v{\text{diff}[R+1] -= v}
  • diff[L1]+=v\text{diff}[L-1] += vdiff[R]=v\text{diff}[R] -= v
  • diff[L1]+=v\text{diff}[L-1] += vdiff[R+1]=v\text{diff}[R+1] -= v
  1. 二维前缀和 sum[i][j]\text{sum}[i][j] 表示 (1,1)(i,j)(1,1)\sim(i,j) 的矩形和,子矩阵 (L1,R1)(L2,R2){(L1,R1)\sim(L2,R2)} 的和为:
    {{ select(8) }}
  • ${\text{sum}[L2][R2] - \text{sum}[L1-1][R2] - \text{sum}[L2][R1-1] + \text{sum}[L1-1][R1-1]}$
  • $\text{sum}[L2][R2] - \text{sum}[L1][R2] - \text{sum}[L2][R1] + \text{sum}[L1][R1]$
  • $\text{sum}[L2+1][R2+1] - \text{sum}[L1][R2+1] - \text{sum}[L2+1][R1] + \text{sum}[L1][R1]$
  • 直接遍历求和
  1. 二维数组做 子矩阵 (L1,R1)(L2,R2)\boldsymbol{(L1,R1)\sim(L2,R2)}vv 操作,差分数组 diff\text{diff} 的正确修改是:
    {{ select(9) }}
  • diff[L1][R1]+=v\boldsymbol{\text{diff}[L1][R1] += v}diff[L1][R2+1]=v\boldsymbol{\text{diff}[L1][R2+1] -= v}diff[L2+1][R1]=v\boldsymbol{\text{diff}[L2+1][R1] -= v}diff[L2+1][R2+1]+=v\boldsymbol{\text{diff}[L2+1][R2+1] += v}
  • diff[L1][R1]+=v\text{diff}[L1][R1] += vdiff[L2][R2]=v\text{diff}[L2][R2] -= v
  • diff[L11][R11]+=v\text{diff}[L1-1][R1-1] += vdiff[L2+1][R2+1]=v\text{diff}[L2+1][R2+1] -= v
  • 遍历子矩阵修改
  1. 一维差分数组 diff\text{diff} 与原数组 aa 的关系是:
    {{ select(10) }}
  • diff的前缀和是原数组{\text{diff的前缀和是原数组}}a[i]=diff[1]++diff[i]\text{a}[i] = \text{diff}[1]+\dots+\text{diff}[i]
  • 原数组的前缀和是差分数组
  • 两者无关
  • 差分是前缀和的逆操作