コード例 #1
0
ファイル: P3298.cpp プロジェクト: atubo/codeforces
int64_t countPairs(HashSet &hs, int mask) {
    hs.reset();
    int64_t ans = 0;
    for (int i = 0; i < N; i++) {
        int m = mask;
        pair<int, int> key = make_pair(0, 0);
        while (m) {
            int x = __builtin_ctz(m);
            hashf(key, W[i][x]);
            m -= (1<<x);
        }
        if (hs.contains(key)) ans += hs[key]++;
        else hs.insert(key);
    }
    return ans;
}