学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
班级教室里新建了一个图书角,班级的同学可从图书角中借书或者还书。班长用一个整数序列记录了借还书情况,他用负整数表示借书数量,正整数表示还书数量,比如有一个整数序列[-3,5,1,2],表示有4位同学分别进行借书3本,还书5本,1本和2本。
有一天班长想核对自己的记录和图书角的书本是否一致,但是他忘记了是从哪一位同学开始记录的借还书,他只记得开始记录时图书角的书已经全部借出,即图书角的书本数量为0.例如有如下整数序列[-3,5,1,2]表示4位同学的借还书情况,假设某个方案是从第3位同学开始记录,则这4位同学借还书情况分别是还书1本,还书2本,借书3本,还书5本。班长想知道在所有操作方案中有多少是可行的(有的方案会造成书本累计数量为负的情况,这样是不可行的)。班长希望有同学能设计一个程序来计算根据给定的整数序列有多少种可行的方案。
(1)小明解决该问题的方案如下:
a = #操作序列赋值给列表a,比如[-3,5,1,2]
s = 0
count = 0
for i in range (0, len(a)):
     s = 0
     for j in range (i, i+len(a)):
          s +=_________
          if s < 0:
               break
          else:
               count+=1
print (count)
(2)小红则认为既然是循环的操作,可以将该整数序列展开成[-3,5,1,2,-3,5,1],用数组s[i]存储a[0]到a[i]的和,s[j]-s[i-1]可以表示i~j所有数的和,在长度为n的序列中寻找从第一项开始累加总和最小的值,并判断是否可行,即是否大于等于0.
小红解决该问题的方案如下:
a = # 操作序列赋值给列表a,比如[-3,5,1,2]
n = len(a)
a = a + a[:-1]
s = [0]*(2*n-1)
s[0] = a[0]
for i in range (1,2*n-1):
     s[i]=_________
count = 0
q = [0]*100
left = right = 0
for i in range (2*n-1):
     while left < right and i-n+1 > q[left]:
_________
     while left < right and s[i] <= s[q[right-1]]:
          right-=1
     q[right]=i
     right+=1
     if i-n+1==0 and s[q[left]]>=0:
          count +=1
     if i-n+1 > 0 and _________
          count +=1
print (count)
(3)算法(1)和算法(2)的时间复杂度相比_________(选填字母:A.算法(1)时间复杂度更大;B.算法(2)时间复杂度更大;C.两种算法时间复杂度相等)
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交