PYTHON 區間求和

2021-10-14 03:43:24 字數 1036 閱讀 6885

題目如下:

本題思路一定不能像題目描述的那樣,申請乙個1e18大的列表(陣列),因為你會發現——longlongtime 之後…

根本申請不出來這麼大的陣列

那麼我們得換一種思路了:區間劃分,即:算出[l3,r3]分別與[l1,r1]、[l2,r2]的交集len1和len2,然後直接求得結果為len1a+len2b

**如下:

#encoding:utf-8

def judge(l1,r1,l2,r2):

#包含關係

if l2<=l1 and r2>=r1:

return r1-l1+1

elif l2<=l1 and r2<=r1:

return r2-l2+1

#完全不相交

elif r2r1:

return 0

#相交elif l2>l1 and l2r1:

return r1-l2+1

elif l2l1 and r2

return r2-l1+1

a,b = list(map(int,input().split()))

l1 ,r1 = list(map(int,input().split()))

l2,r2 = list(map(int,input().split()))

l3,r3 = list(map(int,input().split()))

mod = 1e9+7

len1 = judge(l1,l2,l3,r3)

len2 = judge(l2,r2,l3,r3)

print(round((a*len1+b*len2)%mod))

區間求和 I LintCode

給定乙個整數陣列 下標由 0 到 n 1,其中 n 表示陣列的規模 以及乙個查詢列表。每乙個查詢列表有兩個整數 start,end 對於每個查詢,計算出陣列中從下標 start 到 end 之間的數的總和,並返回在結果列表中。注意事項 在做此題前,建議先完成以下三題 線段樹的構造,線段樹的查詢,以及...

區間求和II

已知 在類的建構函式中給乙個整數陣列,實現兩個方法 query start,end 和 modify index,value 思路 這題非常奇怪,因為難度係數是最高的,但是類結構是完整的,上述兩個函式本身實現也是非常簡單的,我能想到唯一的點就是如何在多個函式之間共享資料,但似乎也算不上難點,而且之間...

區間求和 II

在類的建構函式中給乙個整數陣列,實現兩個方法query start,end 和modify index,value 樣例1 輸入 1,2,7,8,5 query 0,2 modify 0,4 query 0,1 modify 2,1 query 2,4 輸出 10,6,14 說明 給定陣列 a 1,...