我爱OJ 2023-07-08 09:50 采纳率: 78.8%
浏览 85
已结题

C++基础题,OJ刷题

题目描述

在遥远的佐希克大陆,充满着宗教与魔法,每个人都信仰着一个宗教,信仰相同宗教的人两两之间会产生魔法心灵感应。
现在有N个人站成一排,第i个人信仰的宗教为Ai。现在请你求出,总共有多少对人会产生魔法感应。
输入

第一行一个整数N,表示接下来有N个人。
接下来N行,每行一个整数Ai,表示第i个人信仰的宗教为Ai。
1 <= N <= 1000000; 1 <= Ai <= 1000000;
输出

输出一个整数,表示总共会有多少对人,能够产生魔法感应
样例输入
10
3
2
5
4
2
6
1
3
5
2
样例输出
5
提示

样例中,N个人的信仰依次为 {3, 2, 5, 4, 2, 6, 1, 3, 5, 2}
1、8会产生魔法感应
2、5会产生魔法感应
3、9会产生魔法感应
5、10会产生魔法感应
2、10会产生魔法感应
共有5对人会产生魔法感应

#include <bits/stdc++.h>

using namespace std;
const int MAXN = 1000000;
int count[MAXN + 5];
int main() {
    int N;
    scanf("%d",&N);
    int ans = 0;

    for (int i = 0; i < N; i++) {
        int a;
        scanf("%d",&a);
        ans += count[a];
        count[a]++;
    }

    printf("%d",ans);

    return 0;
}

答案错误,11%,请问如何改正

  • 写回答

3条回答 默认 最新

  • 鱼弦 全栈领域优质创作者 2023-07-08 10:01
    关注
    
    #include <iostream>
    #include <unordered_map>
    
    using namespace std;
    
    int main() {
        int N;
        cin >> N;
        unordered_map<int, int> count;
        int ans = 0;
    
        for (int i = 0; i < N; i++) {
            int a;
            cin >> a;
    
            ans += count[a];
            count[a]++;
        }
    
        cout << ans;
    
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月9日
  • 修改了问题 7月8日
  • 修改了问题 7月8日
  • 创建了问题 7月8日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上