題目如下:
本題思路一定不能像題目描述的那樣,申請乙個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,...