题解:AT_abc392_g [ABC392G] Fine Triplets
lovely_nst · · 题解
[ABC392G] Fine Triplets
前言
赛后才知道有官方库。
正文
题意就是问有多少三元组
移位后得
提示:FFT 卷积在官方库中有。
AC Code
#include <atcoder/convolution>
#include <bits/stdc++.h>
#define int long long
using namespace std;
using namespace atcoder;
int a[1000005];
vector <int> s , c , s2;
signed main ()
{
ios::sync_with_stdio (0) , cin.tie (0) , cout.tie (0);
int n;
cin >> n;
s.resize (1e6 + 5);
for (int i = 1;i <= n;i ++)
cin >> a[i] , s[a[i]] = 1;
s2 = s;
c = convolution (s2 , s2);
int ans = 0;
for (int i = 1;i <= n;i ++)
ans += (c[a[i] << 1] - 1) >> 1;
cout << ans;
return 0;
}