有人能帮我吗?
  • 板块题目总版
  • 楼主lihujilin
  • 当前回复3
  • 已保存回复3
  • 发布时间2025/1/26 17:00
  • 上次更新2025/1/26 21:17:50
查看原帖
有人能帮我吗?
1389154
lihujilin楼主2025/1/26 17:00

等しい数(题目)

#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;
}

//这个代码不对

2025/1/26 17:00
加载中...