rt,以下两段代码:
for(int i=1;i<=n;i++){
ad[i]=(i-1)/B+1;
sum[ad[i]]+=a[i];
if((i-1)%B==0) st[++cnt]=i;
if(i%B==0) ed[cnt]=i;
}
if(n%B!=0) ed[cnt]=n;
for(int i=1;i<=n;i++){
ad[i]=(i-1)/B+1;
sum[ad[i]]+=a[i];
if((i-1)%B==0) st[++cnt]=i;
if(i%B==0) ed[cnt]=i;
}
为啥两段代码交上去都能 A 啊,是数据太水还是这种不用设最后一个块的右边界是对的?