hdu 4288 Coder(單點操作,查詢)

2022-09-02 16:33:15 字數 1335 閱讀 8131

題意:

三種操作:

1. add x – add the element x to the set;

2. del x – remove the element x from the set;

3. sum – find the digest sum of the set.

the digest sum should be understood by:sum(ai) where i % 5 ==3 

where the set s is written as satisfying a1

< a2

< a3

< ... < ak

資料規格:

n ( 1 <= n <= 105 )

1 <= x <= 109.

思路:bc做過一題和這個一模一樣的,,,哎,,,這題早就做過了,可是bc卻沒有做出來,,,

這個還要離線處理,因為x很大

**:

int

const maxn=1e5+5

;struct

nodetree[maxn

<<2

];int

n,tot;

intq[maxn],a[maxn];

char ope[maxn][15

];void build(int l,int r,int

rt)void pushup(int

rt)void update(int k,int pos,int num,int l,int r,int

rt)

int m=(l+r)>>1

;

if(pos<=m)

update(k,pos,num,lson);

else

update(k,pos,num,rson);

pushup(rt);

}int

main()

}sort(a,a+tot);

tot=unique(a,a+tot)-a;

//rep(i,0,tot-1) cout) memset(tree[

1].sum,0,sizeof(tree[1

].sum));

else

build(

1,tot,1

); rep(i,

1,n)

if(ope[i][0]=='d'

) printf(

"%i64d\n

",tree[1].sum[2

]); }

}//fclose(stdin);

}

hdu4288 Coder(線段樹單點更新)

題意 支援增刪,查操作,最後的序列式遞增的。做法 主要是如何維護mod5的sum值,這裡左兒子可以不用管,關鍵是右兒子的處理,可以假設右兒子有t個節點,左兒子有cnt個節點,則令 t cnt mod 5 i 則tmod5 i cnt mod 5 mod 5 所以剩下的就是維護每個節點的節點總數以及相...

無聊題目大紀實(HDU 4288 Coder)

這神題,暴力陣列可過,vector可過,線段樹可過。時限拉的太長了,所以就成水題了。不過比賽的時候真的沒敢用陣列暴力寫。說說線段樹的思路吧。對樹的每個節點 l,r,cnt,sum 5 分別表示左區間,右區間,這段區間上的點數,這段區間上sum x 5 的和。先把所有的資料都讀入,然後離散化,去掉重複...

hdu 4288 Coder 成都賽區 線段樹

題意 給出乙個有序集合,3種操作。插入乙個數,刪除乙個數,都保證序列有序。以及求和 其中求和是將下標 5 3的所有數求和 題解 線段樹 離散化 離線處理 一開始也是想的 線段樹 但是 這個和以前的 做過的 乙個線段樹 不同的 是 如果 我們 刪除 乙個 元素後 那麼 他的 下標 將會 改變 比賽是 ...