C++代码:网络侦探 - 找出微博悄悄关注的人
以下是一个可能的C++代码实现:\n\ncpp\n#include <iostream>\n#include <vector>\n#include <map>\n#include <algorithm>\n\n// 用户结构体,用于存储用户ID和点赞次数\nstruct User {\n std::string id;\n int likes;\n\n User(std::string _id, int _likes) : id(_id), likes(_likes) {}\n};\n\nbool compareUser(const User& u1, const User& u2) {\n return u1.id < u2.id;\n}\n\nint main() {\n // 读取用户关注列表\n int n;\n std::cin >> n;\n std::vector<std::string> followList(n);\n for (int i = 0; i < n; i++) {\n std::cin >> followList[i];\n }\n\n // 读取用户点赞信息\n int m;\n std::cin >> m;\n std::map<std::string, int> likesMap;\n int totalLikes = 0;\n for (int i = 0; i < m; i++) {\n std::string id;\n int likes;\n std::cin >> id >> likes;\n likesMap[id] = likes;\n totalLikes += likes;\n }\n\n // 计算点赞平均数\n double averageLikes = static_cast<double>(totalLikes) / m;\n\n // 检查每个点赞的用户,判断是否可能是悄悄关注的人\n std::vector<User> possibleSecretFans;\n for (const auto& entry : likesMap) {\n const std::string& id = entry.first;\n int likes = entry.second;\n if (likes > averageLikes && std::find(followList.begin(), followList.end(), id) == followList.end()) {\n possibleSecretFans.push_back(User(id, likes));\n }\n }\n\n // 按字母序升序排序并输出结果\n std::sort(possibleSecretFans.begin(), possibleSecretFans.end(), compareUser);\n if (possibleSecretFans.empty()) {\n std::cout << "Bing Mei You" << std::endl;\n } else {\n for (const auto& user : possibleSecretFans) {\n std::cout << user.id << std::endl;\n }\n }\n\n return 0;\n}\n\n\n该代码首先读取用户关注列表和点赞信息,并计算点赞平均数。然后,它检查每个点赞的用户,如果该用户的点赞次数大于平均值且不在关注列表中,则将其添加到可能是悄悄关注的人的列表中。最后,它对可能的悄悄关注的人的列表按字母序进行排序,并输出结果。如果没有符合条件的人,则输出"Bing Mei You"。
原文地址: https://www.cveoy.top/t/topic/pN6y 著作权归作者所有。请勿转载和采集!