void TAGMUtil::GetNodeMembership(THash<TInt,TInt >& NIDComVH, const TVec<TIntV>& CmtyVV) {
    NIDComVH.Clr();
    for (int i = 0; i < CmtyVV.Len(); i++) {
        int CID = i;
        for (int j = 0; j < CmtyVV[i].Len(); j++) {
            int NID = CmtyVV[i][j];
            NIDComVH.AddDat(NID)++;
        }
    }
}
/// get hash table of <Node ID, community IDs which node belongs to>. Some nodes in NIDV might belong to no community
void TAGMUtil::GetNodeMembership(THash<TInt,TIntSet >& NIDComVH, const TVec<TIntV>& CmtyVV, const TIntV& NIDV) {
    NIDComVH.Clr();
    for (int u = 0; u < NIDV.Len(); u++) {
        NIDComVH.AddDat(NIDV[u]);
    }
    for (int i = 0; i < CmtyVV.Len(); i++) {
        int CID = i;
        for (int j = 0; j < CmtyVV[i].Len(); j++) {
            int NID = CmtyVV[i][j];
            NIDComVH.AddDat(NID).AddKey(CID);
        }
    }
}