蓝桥杯算法入门(Python) 课件 5-3差分.pptxVIP

  • 0
  • 0
  • 约1.07千字
  • 约 8页
  • 2026-08-24 发布于山东
  • 举报

蓝桥杯算法入门(Python) 课件 5-3差分.pptx

罗勇军;差分;前缀和与差分;差分数组:提升修改的效率;5;6;N=100003

a=[0]*N

cnt=[0]*N

n=int(input())

a[1:n+1]=map(int,input().split())#a[0]不用,从a[1]开始

m=int(input())

ans1,ans2=0,0#ans1:原区间和;ans2:新区间和

for_inrange(m):

L,R=map(int,input().split())

foriinrange(L,R+1):

cnt[i]+=1#第i个数被加了一次,累计一共加了多少次

foriinrange(1,n+1):

ans1+=a[i]*cnt[i]#在原数组上求区间和

a[1:n+1]=sorted(a[1:n+1])#a[0]不用,从a[1]开始

cnt[1:n+1]=sorted(cnt[1:n+1])#cnt[0]不用,从cnt[1]开始

foriinrange(1,n+1):

ans2+=a[i]*cnt[i]

print(ans2-ans1);N=100003

a=[0]*

文档评论(0)

1亿VIP精品文档

相关文档