1520D - Same Differences

统计满足\(i<j\)并且\(a_j-a_i=j-i\)的数对的数量。

变形,\(a_j-j=a_i-i\)

开哈希表,对原数组扫描一遍即可。

const int N=2e5+10;
int a[N];
int n;

int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        cin>>n;

        unordered_map<int,int> mp;
        LL res=0;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            res+=mp[a[i]-i];
            mp[a[i]-i]++;
        }

        cout<<res<<endl;
    }
    //system("pause");
    return 0;
}
posted @ 2021-05-24 12:36  Dazzling!  阅读(34)  评论(0编辑  收藏  举报