关注
第三题: #include <iostream>
#include <vector>
#include <set>
#include <map>
#include <algorithm>
using namespace std;
int main()
{
int m, n, k;
cin >> m >> n >> k;
vector<int> tmp;
map<int, vector<int> > datas; // int为序号,vector为依赖他的结点
for (int i = 0; i <= m; i++) {
vector<int> tmp;
datas[i] = tmp;
}
vector<int> yilai(m + 1, 0); // 结点i是否有依赖,0为无依赖可以直接操作
vector<int> done(m + 1, 0); // 结点i是否已完成,0为未完成
int left, right;
for (int i = 0; i < k; i++) {
cin >> left >> right;
yilai[left] = 1;
datas[right].push_back(left);
}
int ans = 0;
int conutOfDone = 0; // 当前已完成计数
while (conutOfDone != m) {
int conutoftodo = 0;
vector<int> deal;
for (int i = 1; i <= m; i++) {
if (yilai[i] == 0 && done[i] == 0) {
conutoftodo++;
conutOfDone++;
deal.push_back(i); // 存储当前待完成结点,用于更新各数组
}
}
if (conutoftodo == 0 && conutOfDone != n) {
cout << "E" << endl;
return -1;
}
else if (conutoftodo <= n)
ans++;
else if (conutoftodo > n) {
if (conutoftodo % n == 0)
ans = ans + conutoftodo / n;
else
ans = ans + conutoftodo / n + 1;
}
for (int i = 0; i < deal.size(); i++) { // 更新各个数组
done[deal[i]] = 1;
vector<int> ttt = datas[deal[i]];
for (int j = 0; j < ttt.size(); j++)
yilai[ttt[j]] = 0;
}
}
cout << ans << endl;
return 0;
}
查看原帖
点赞 4
相关推荐
06-04 10:32
安徽大学 单片机 实习僧和BOSS直聘都投了几十家,硬件开发,硬件测试,嵌入式都投了,全是已读不回……我现在考虑想在秋招前速成一个Linux项目,其实现在完全不知道自己要找什么方向的,只能海投了,求大佬们给点意见😭😭😭

点赞 评论 收藏
分享
07-16 11:17
北京邮电大学 硬件开发 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届的你们有几段实习? #
19624次浏览 273人参与
# 你小时候最想从事什么职业 #
102719次浏览 1771人参与
# 你被哪些公司秒挂过? #
18631次浏览 182人参与
# 网申一定要掌握的小技巧 #
9650次浏览 65人参与
# 如何提高实习转正率? #
7537次浏览 133人参与
# 新凯来求职进展汇总 #
41028次浏览 108人参与
# 你认为哪些项目算烂大街? #
8298次浏览 196人参与
# 机械校招之路总结 #
92421次浏览 1889人参与
# 你后悔自己读研吗? #
8929次浏览 175人参与
# 你以为的实习VS真实的实习 #
11476次浏览 131人参与
# 月薪多少能在一线城市生存 #
10720次浏览 169人参与
# 腾讯工作体验 #
479941次浏览 3498人参与
# 找工作时的取与舍 #
81319次浏览 577人参与
# 最难的技术面是哪家公司? #
5948次浏览 58人参与
# 秋招拿一个offer可以躺平吗 #
144961次浏览 928人参与
# 安利/避雷我的专业 #
77742次浏览 526人参与
# 面试等了一周没回复,还有戏吗 #
137182次浏览 1229人参与
# 你想留在一线还是回老家? #
50045次浏览 513人参与
# 选择和努力,哪个更重要? #
86058次浏览 745人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
114946次浏览 799人参与