2651 區間和的和

2021-09-26 22:50:54 字數 631 閱讀 6564

輸入乙個長度為n的陣列a包括(n+1)n/2

個區間。每個區間所有數的和,被稱為區間和,求所有(n+1)n/2

個區間和的和。由於數值較大,輸出mod 1e9+7的結果。

例如:3個數1 2 3,共有6個子區間,包含的數字如下:

,這些區間求和為1 2 3 3 5 6,這6個數字再求和為20.

求出每個位置上的數出現的個數再乘以該位置上的數字

例:5個數 1 2 3 4 5

舉3為例:

從3往後:有3, 3 4, 3 4 5,(n-i+1)=(5-3+1)=3種情況

然後往前看有i=3種情況 不包含,包含2,包含1,2

組合起來就是i*(n-i+1)=9種情況

同時可以發現它是中間對稱的情況

再注意資料過大用long long就行

#includeusing namespace std;

const int mod=1e9+7;

long long a[100010];

int main()

if(n%2)

sum=(sum+i*(n-i+1)*a[i]%mod)%mod;

cout

}

327 區間和的個數

今天的題目還是看了一陣子 我是鏈結 意思是任意子區間內所有元素的和要在lower和upper之間,可以取等 所以題目中 0,0 2,2 都指向各自位置的元素,0,2 就是從第0個元素 一直加到 第2 個元素 等於 2 所以這就是為什麼輸出是3.class solution sum nums i fo...

327 區間和的個數

給定乙個整數陣列 nums,返回區間和在 lower,upper 之間的個數,包含 lower 和 upper。區間和 s i,j 表示在 nums 中,位置從 i 到 j 的元素之和,包含 i 和 j i j 說明 最直觀的演算法複雜度是 o n2 請在此基礎上優化你的演算法。想到了字首和,同時由...

327 區間和的個數

題目描述 給定乙個整數陣列 nums,返回區間和在 lower,upper 之間的個數,包含 lower 和 upper。區間和 s i,j 表示在 nums 中,位置從 i 到 j 的元素之和,包含 i 和 j i j 說明 最直觀的演算法複雜度是 o n2 請在此基礎上優化你的演算法。示例 輸入...