用的int,没影响啊 AC代码 #include<vector> #include<unordered_map> using namespace std; int main() {     // 输入     int n; // 总数     cin >> n;     int val;     unordered_map<int, int> valMap;     unordered_map<int, int>::iterator valIter;     // 输入并计数     for (int i = 0; i < n; i++)     {         cin >> val;         if ((valIter = valMap.find(val)) != valMap.end())         {             (valIter->second)++;         }         else         {             valMap[val] = 1;         }     }     // 寻找最小值     int min = n;     for (auto i : valMap)     {         // 不足 2 的球肯定不行,直接返回0         if (i.second < 2)         {             cout << 0;             return 0;         }         // 和 n 相同,说明只有一种球,返回 1         if (i.second == n)         {             cout << 1;             return 0;         }         // 最小值         if (i.second < min && i.second != 0)         {             min = i.second;         }     }     int num = min; // 篮子球的个数     int k = 1;     int maxK = min;     bool flag = false;     while (num >= 2 && k <= (min / 2))     {         if (min % k == 0)         {             num = min / k;             for (auto i : valMap)             {                 if (i.second % num != 0)                 {                     break;                 }                 flag = true;             }         }         else         {             k++;         }         if (flag)             break;     }     if (flag)     {         cout << n / num;     }     else     {         cout << 0;     }     system("pause");     return 0; }
点赞 1

相关推荐

点赞 评论 收藏
转发
牛客网
牛客企业服务