#JC1026. 前缀和与差分

前缀和与差分

一、单项选择题(每题2分,共20分)

1、已知原数组a,前缀和数组s递推公式,i≥2时正确的是?()。 {{ select(1) }}

  • s[i] = s[i] + a[i‑1]
  • s[i] = s[i‑1] - a[i]
  • s[i] = s[i‑1] + a[i]
  • s[i] = a[i] - a[i‑1]

2、使用前缀和求数组下标L~R的区间和,公式是?()。 {{ select(2) }}

  • s[R‑1]‑s[L]
  • s[R]‑s[L‑1]
  • s[R]‑s[L]
  • a[R]‑a[L‑1]

3、数组下标从1开始,求长度为K的区间,终点为i,该区间和公式为?()。 {{ select(3) }}

  • s[i‑K]‑s[i]
  • s[i]‑s[K]
  • a[i]‑a[i‑K]
  • s[i]‑s[i‑K]

4、差分数组d的计算公式是?()。 {{ select(4) }}

  • d[i] = a[i] + a[i‑1]
  • d[i] = a[i] - a[i‑1]
  • d[i] = s[i] - s[i‑1]
  • d[i] = d[i‑1] + a[i]

5、关于差分数组性质描述正确的是?()。 {{ select(5) }}

  • 差分数组求差分得到原数组
  • 差分数组和原数组完全一样
  • 差分数组求前缀和可以得到原数组
  • 差分数组只能用来求区间和

6、数组a[0,2,9,5,11],前缀和数组s[0,2,11,16,27],求区间2~4的和是?()。 {{ select(6) }}

  • s[4]-s[1]
  • s[4]-s[0]
  • s[3]-s[1]
  • s[4]-s[2]

7、前缀和算法最适合下面哪种场景?()。 {{ select(7) }}

  • 只查询1次区间和
  • 专门做数组排序
  • 多次查询不同区间的区间和
  • 只用来交换数组元素

8、原数组a={0,3,5,9,19},下标从1开始,d[3]差分值为?()。 {{ select(8) }}

  • 5
  • 14
  • 9
  • 4

9、长度K=3,区间终点i=7,则该区间的起点下标为?()。 {{ select(9) }}

  • 3
  • 5
  • 4
  • 7‑K‑1

10、n=10,K=3,遍历所有长度为K的区间,循环i的终止条件是?()。 {{ select(10) }}

  • i<=3
  • i<=10
  • i<K
  • i>10

二、判断题(每题2分,共10分)

11、前缀和数组s[i]代表原数组前i项的总和。() {{ select(11) }}

  • 正确
  • 错误

12、求L~R区间和,当L=1时,公式s[R]-s[L‑1]等价于s[R]-s[0]。() {{ select(12) }}

  • 正确
  • 错误

13、差分数组求差分运算,可以还原得到原始数组。() {{ select(13) }}

  • 正确
  • 错误

14、对于大量区间查询,使用前缀和比每次循环累加效率更高。() {{ select(14) }}

  • 正确
  • 错误

15、计算长度为K的区间和,循环遍历终点i范围是1~n。() {{ select(15) }}

  • 正确
  • 错误