解决思路
- 读取输入:读取每组奶牛的名字。
- 排序:对每组奶牛的名字进行排序,以确保相同的组合总是以相同的顺序出现。
- 记录出现次数:使用 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; }