给定含有n个正整数元素的数组a,将其分成连续的k(1<k≤n)段,有多种分法,每种分法中各段和均有最大值,找出这些最大值中最小的一个并输出。如n的值为5,k的值为3,数组元素a(1)到a(5)依次为“1,2,3,3,1”,其中分法{1,2}{3}{3,1}各段和的最大值为4,比其他分法的最大值小,4就是输出值。寻找最小值的部分代码如下: a(1)=1:a(2)=2:a(3)=3:a(4)=3:a(5)=1 n=5:k=3 L=3:R=10 ‘L值可以为数组元素最大值,R可以为数组所有元素和 Do While L+1<R m=(L+R)\2 t=0:s=0 For i=1 To n If t+a(i)>=m Then s=s+1 t =a(i) Else t =t+a(i) End If Next i If t>0 then s=s+1 If s<=k Then① Else ② Loop Label1.Caption=“最小值为”&Str(L) 要使程序实现上述算法思想,则代码中①②处应为( )
A . ①R=m ②L=m
B . ①L=m ②R=m
C . ①R=m+1 ②L=m-1
D . ①L=m+1 ②R=m-1
答案:A