2246 记录保存 map

解决思路

 
  • 读取输入:读取每组奶牛的名字。
 
  • 排序:对每组奶牛的名字进行排序,以确保相同的组合总是以相同的顺序出现。
 
  • 记录出现次数:使用 map 记录每组奶牛组合出现的次数。

 

  • 计算最大次数:遍历 map,找到出现次数最多的组合。
    #include <bits/stdc++.h>
    #define ll long long
    using namespace std;
    const int N = 2e5 + 10;
    
    // 使用map来记录每组奶牛组合出现的次数
    map<string, int> vis;
    string a, b, c;
    int n, ans;
    
    int main() {
        // 读取记录的小时数
        cin >> n;
        for (int i = 1; i <= n; i++) {
            // 读取每组奶牛的名字
            cin >> a >> b >> c;
            // 对奶牛名字进行排序,确保相同的组合总是以相同的顺序出现
            if (a > b) swap(a, b);
            if (a > c) swap(a, c);
            if (b > c) swap(b, c);
            // 记录组合出现的次数
            vis[a + b + c]++;
            // 更新最大出现次数
            ans = max(ans, vis[a + b + c]);
        }
        // 输出最大出现次数
        cout << ans;
        return 0;
    }

     

posted @ 2024-09-30 16:35  CRt0729  阅读(33)  评论(0编辑  收藏  举报