牛客小白月賽17 G區間求和 莫隊

2021-09-27 06:03:58 字數 842 閱讀 2660

小sun最近突然對區間來了興趣,現在他有這樣乙個問題想問問你:

給你n個數,每個數為ai,現在有m個詢問,每個詢問l,r,需要求出:

sigma ai * num(ai)        1<=i<=n

num(ai) 代表ai​在這個區間**現的次數。

你能幫幫他嗎?

第一行,兩個整數n,m

第二行,總共n個數,代表這個數列

接下來m行,每行兩個整數l,r,代表乙個詢問

輸出總共m行,對於每個詢問,輸出這個詢問對應的答案
示例1

10 5

1 3 2 4 5 6 4 5 6 7

1 52 5

3 41 10

3 7

15146

7329

1≤n,m≤1e5

1≤ai≤1e5

1≤l,r≤n

莫隊,複雜度n根號n。 右區間在每一塊 從1移到n,根號n塊,複雜度 n根號n。  左區間每次最多移動根號n,移動根號n次,時間複雜度也是n根號n

#includeusing namespace std;

typedef long long ll;

const int maxn=1e5+5;

int a[maxn];

ll cnt[maxn];

ll ans[maxn];

ll res;

struct nodeq[maxn];

bool cmp(node a,node b)

for(int i=1;i<=m;i++)

return 0;

}

牛客小白月賽17 G區間求和 莫隊

題目 給你n個數,每個數為ai 現在有m個詢問,每個詢問l,r,需要求出 題解 莫隊模板題 演算法學習部落格 includeusing namespace std typedef long long ll const int n 1e5 10 int n,m int a n struct node ...

區間 interval 牛客小白月賽5

apojacsleam喜歡陣列。他現在有乙個n個元素的陣列a,而他要對a l a r 進行m次操作 操作一 將a l a r 內的元素都加上p 操作二 將a l a r 內的元素都減去p 最後詢問a l a r 內的元素之和?請認真看題乾及輸入描述。輸入共m 3行 第一行兩個數,n,m,意義如 題目...

牛客小白月賽23 G 樹上求和 題解(貪心)

其實這題自己有思路了,但是最後沒寫 卻去看了題解實屬不該。這題其實和周賽的一題很相似都是求貢獻 相似的周賽題 此題需要從算貢獻的角度思考,對於每條邊對答案的貢獻,等於其左邊子樹結點個數 右邊子樹結點個數 邊長。因此我們先隨便從一點dfs,預處理出每個子樹的結點個數。再遍歷所有的邊。把左邊子樹結點個數...