HDU 3874 離線線段樹

2021-06-26 18:30:53 字數 589 閱讀 8849

統計區間內所有數字和,對於重複出現的只統計一次

線段樹的離線演算法 

按結束座標排序,然後掃一遍,遇到重複的,就把之前插入線段樹的給刪掉

#include "stdio.h"

#include "string.h"

#include "algorithm"

using namespace std;

struct node

data[200010];

struct mark

mark[200010];

int hash[1000001];

__int64 a[50010],ans[200010];

bool cmp(mark a,mark b)

int main()

{ int case,i,n,m,now;

scanf("%d",&case);

while (case--)

{scanf("%d",&n);

for (i=1;i<=n;i++)

scanf("%i64d",&a[i]);

scanf("%d",&m);

for (i=0;i

hdu 3874 線段樹 離線查詢

要求乙個區間所有數之和 求和時要去重 離線查詢 先把所有查詢離線 然後按照右端點排序 每次保證加入後乙個數的時候線段樹中沒有和他重複的 如果重複就把前乙個刪掉 這樣由於之前排序過 保證不會漏解 include include include define lson l,mid,rt 1 define...

HDU3874 莫隊演算法,模板)

題意 給定乙個陣列,每次詢問乙個區間 l,r 求區間內所有數字的和,出現多次的數字只加一次 解題思路 莫隊演算法就適用於這種區間問題,且臨近點轉移比較方便的情況。複雜度最大應該也有o m sqrt n 但總比暴力的o mn 要好。include include include include def...

HDU 3333 離線線段樹

線段樹 給定乙個序列,求區間出現的數的數值和,若有多個,只計算一次 先離散化存數資料 對詢問區間按右節點排序,這樣我們每次維護的都是從前到當前位置,保證其重複元素不累加 跟新節點,對於之前出現過的刪除,並在新位置新增 然後查詢即可 include iostream include algorithm...