等しい数(题目)
#include <iostream>
#include <vector>
#include <unordered_map>
// 计算满足条件的整数对 (i, j) 的数量
long long countPairs(const std::vector<int>& a) {
std::unordered_map<int, int> freq;
long long result = 0;
// 统计每个元素的出现频率
for (int num : a) {
freq[num]++;
}
// 计算满足条件的整数对数量
for (const auto& pair : freq) {
int count = pair.second;
result += (long long)count * (count - 1) / 2;
}
return result;
}
int main() {
int n;
std::cin >> n;
std::vector<int> a(n);
for (int i = 0; i < n; ++i) {
std::cin >> a[i];
}
int q;
std::cin >> q;
for (int i = 0; i < q; ++i) {
int l, r, x;
std::cin >> l >> r >> x;
// 修改 [l, r] 范围内的元素值
for (int j = l - 1; j < r; ++j) {
a[j] = x;
}
// 计算并输出满足条件的整数对数量
long long pairs = countPairs(a);
std::cout << pairs << std::endl;
}
return 0;
}
//这个代码不对