POJ競賽題目講解_POJ2985(樹狀數(shù)組)
2022-09-12 16:14 作者:Clayton_Zhou | 我要投稿
?http://poj.org/problem?id=2985
題意:
就是一開始給你n個(gè)集合,每個(gè)集合里面有一個(gè)元素,然后有m次操作,每次操作有兩種可能,一種是查詢當(dāng)前所有集合中第k大的集合的大小,也就是所有集合內(nèi)部的元素個(gè)數(shù)第k大的集合的元素個(gè)數(shù);
另一種是合并某兩個(gè)集合,合并后的集合將變?yōu)樵瓉韮蓚€(gè)集合的大小之和
題解:
巧妙使用樹狀數(shù)組
?c[i]樹形數(shù)組, c[i] 表示,大小為i的的集合的個(gè)數(shù)
?f[i]節(jié)點(diǎn)i的父親節(jié)點(diǎn)標(biāo)號
?a[i]以節(jié)點(diǎn)i為根節(jié)點(diǎn)的集合元素個(gè)數(shù),初始值為1
?k=1 表示第1大組, 位置足夠大,包含所有的組個(gè)數(shù)num
?k=2 表示第2大組, 位置足夠大,包含 組個(gè)數(shù)num-1
標(biāo)簽: