NachiaVivias / cp-library

https://nachiavivias.github.io/cp-library/
Creative Commons Zero v1.0 Universal
13 stars 0 forks source link

HLD の path,subtree は、 pair ではなくて独自構造体を返すようにしたい #8

Closed NachiaVivias closed 7 months ago

NachiaVivias commented 1 year ago

概要

HeavyLightDecomposition::path および HeavyLightDecomposition::subtree では区間として std::pair<int,int> の値を返しているが、これを次の構造体で作って返すように変更する。

struct Range {
    int l; int r;
    int size() const { return r-l; }
};

メリット

subtree(v).size() で簡潔に部分木のサイズを取得できる。

first , second よりも l , r のほうが短く、わかりやすいので、コーディングが早くなりそう。

使用時のデメリット

pair を渡す関数がある場合、面倒になる。(これで面倒になる関数があった気がしないが。)