1527C - Sequence Pair Weight - CodeForces Solution


hashing implementation math *1600

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define ios ios::sync_with_stdio(0)
#define endl '\n'
#define int long long
#define ar array<int, 2>
#define arr array<int, 3>
const int N = 2e5 + 5, M = 2 * N;
const int inf = 0x3f3f3f3f3f3f3f3f;
int mod = 998244353; //1e9+7;
int t, n, m, k;

signed main()
{
    ios;
#ifdef DEBUG
    freopen("../1.in", "r", stdin);
#endif
    cin >> t;
    while (t--)
    {
        // 这种全子集 一般都是
        // 还是贡献的角度。。
        // 比如i j 一对 那么 左边i个 右边 n-i+1个 。。组成的所有区间 都会贡献。
        // 如果后面还有 k 也是 。也都是要再次算入。。
        // 因为虽然是同一个区间和i j  但是他们算的是两个不同的对子。。
        // 而且这边采用前缀和 是以后面那个主视角的枚举。。。也是技巧。
        cin >> n;
        map<int, int> f;
        int ans = 0;
        for (int i = 1; i <= n; ++i)
        {
            int x;
            cin >> x;
            ans += f[x] * (n - i + 1);
            f[x] += i;
        }
        cout << ans << endl;
    }
};


Comments

Submit
0 Comments
More Questions

776A - A Serial Killer
25B - Phone numbers
1633C - Kill the Monster
1611A - Make Even
1030B - Vasya and Cornfield
1631A - Min Max Swap
1296B - Food Buying
133A - HQ9+
1650D - Twist the Permutation
1209A - Paint the Numbers
1234A - Equalize Prices Again
1613A - Long Comparison
1624B - Make AP
660B - Seating On Bus
405A - Gravity Flip
499B - Lecture
709A - Juicer
1358C - Celex Update
1466B - Last minute enhancements
450B - Jzzhu and Sequences
1582C - Grandma Capa Knits a Scarf
492A - Vanya and Cubes
217A - Ice Skating
270A - Fancy Fence
181A - Series of Crimes
1638A - Reverse
1654C - Alice and the Cake
369A - Valera and Plates
1626A - Equidistant Letters
977D - Divide by three multiply by two