小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 51 3 2 4 5 6 4 5 6 7
1 52 5
3 41 10
3 7
151467329
1≤n,m≤1e5莫隊,複雜度n根號n。 右區間在每一塊 從1移到n,根號n塊,複雜度 n根號n。 左區間每次最多移動根號n,移動根號n次,時間複雜度也是n根號n1≤ai≤1e5
1≤l,r≤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,預處理出每個子樹的結點個數。再遍歷所有的邊。把左邊子樹結點個數...