#1913. 珅泽教育CSP-J第一轮模拟考第十一套 第 37 题

珅泽教育CSP-J第一轮模拟考第十一套 第 37 题

三、完善程序(单选题,每小题3分,共计33分)

第1题

给定 nn 个数字 a1,a2,,ana_1,a_2,\dots,a_n,从 11nn 中挑出两个下标 iijj 并要求 i<ji<j,然后将 aia_iaja_j 组成一个有序的序对 (ai,aj)(a_i,a_j)

请统计,能从序列中挑选出多少种互不相等的数对?数对 (x,y)(x,y)(p,q)(p,q) 称之为不相等,是指 xpx\neq p 或者 yqy\neq q

#include<iostream>

const int maxn = 100005;
int a[maxn];
int c[maxn];
bool present[maxn];

int main()
{
    int n;
    std::cin >> n;
    int num = 0;
    long long pair = 0;
    for (int i = 1; i <= n; ++i) {
        std::cin >> a[i];
        pair += ____①____;
        pair -= c[____②____];
        ____③____ = num;
        if (____④____){
            present[a[i]] = true;
            ____⑤____;
        }
    }
    std::cout << pair << "\n";
}

③ 处应填( )。

{{ select(1) }}

  • c[i]
  • c[a[i]]
  • a[i]
  • a[c[i]]