void getGuanzhuCore(map<int, vector<int>> & guanzhu, map<int, set<int>> & beiguanzhu, vector<int> & lujing, int user) { for (int i = 0; i < guanzhu[user].size(); ++i) { for (int j = 0; j < lujing.size(); ++j) { beiguanzhu[guanzhu[user][i]].insert(lujing[j]); } //没有在路径中的元素,继续查找 if (find(lujing.begin(), lujing.end(), guanzhu[user][i]) == lujing.end()) { lujing.push_back(guanzhu[user][i]); getGuanzhuCore(guanzhu, beiguanzhu, lujing, guanzhu[user][i]); lujing.pop_back(); } } } void getAllGuanzhu(map<int, vector<int>> & guanzhu, map<int, set<int>> & beiguanzhu) { vector<int> guanzhulujing; for (auto it = guanzhu.begin(); it != guanzhu.end(); ++it) { guanzhulujing.clear(); guanzhulujing.push_back(it->first); getGuanzhuCore(guanzhu, beiguanzhu, guanzhulujing, it->first); } } int main() { int n = 0, m = 0; while (cin >> n >> m) { map<int, vector<int>> guanzhu; map<int, set<int>> beiguanzhu; for (int i = 0; i < m; ++i) { int u1 = 0, u2 = 0; cin >> u1 >> u2; guanzhu[u1].push_back(u2); } getAllGuanzhu(guanzhu, beiguanzhu); int cnt = 0; for (auto it = beiguanzhu.begin(); it != beiguanzhu.end(); ++it) { it->second.erase(it->first);//先删掉自己的关注 if (it->second.size() >= n - 1) cnt++; } cout << cnt << endl; } return 0; }
点赞 评论

相关推荐

07-20 21:57
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
看牛客上感觉牛油都是985/211硕,本科生都很少见呀。现在秋招有佬拿到offer了嘛
职场水母:大多数本科生都在急着谈恋爱吧,能上牛客的少之又少,倒是硕士在这里有很多,这部分人群走的路及其相似,当年都选择了考研,到现在找工作都喜欢上牛客,不得不说还是挺有远见的大家。大家都是有远见的牛马
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务