关注
// 贴个代码吧...
#ifdef LOCAL
#include <fstream>
#endif
//#ifdef LOCAL
#include <cstdio>
#include <cstring>
#include <map>
#include <queue>
#include <unordered_map>
#include <vector>
//#else
//#include <bits/stdc++.h>
//#endif
#define INF 0x7FFFFFFF
using namespace std;
typedef long long LL;
inline void read(LL&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';}
class Dependency {
public:
void AddDependency(unsigned int ModuleId, unsigned int DependModuleId) {
if (degree.find(ModuleId) == degree.end()) { degree[ModuleId] = 0; }
if (degree.find(DependModuleId) == degree.end()) { degree[DependModuleId] = 0; }
++degree[DependModuleId];
Graph[ModuleId].push_back(DependModuleId);
}
void CalcDependency() {
for (map<int, int>::iterator it = degree.begin(); it != degree.end(); ++it) {
if (it->second == 0) {
que.push(it->first);
degree[it->first] = -1;
}
}
while (!que.empty()) {
int x = que.front(); que.pop();
for (int i = 0; i < Graph[x].size(); ++i) {
--degree[Graph[x][i]];
if (degree[Graph[x][i]] == 0) {
que.push(Graph[x][i]);
degree[Graph[x][i]] = -1;
}
}
}
}
bool MouldelsCycularDependency(unsigned int ModuleId) {
if (degree[ModuleId] > 0) return false;
return true;
}
void clear(void) {
degree.clear();
Graph.clear();
}
queue<int> que;
map<int, int> degree;
unordered_map<int, vector<int>> Graph;
};
int main() {
#ifdef LOCAL
freopen("input.txt", "r", stdin);
#endif
Dependency dep;
int a, b;
while (scanf("{%x, %x}", &a, &b) != EOF) {
dep.AddDependency(a, b);
char ch = getchar();
if (ch != ',') break;
getchar();
}
dep.CalcDependency();
vector<pair<int, int>> ans;
for (map<int, int>::iterator iter = dep.degree.begin(); iter != dep.degree.end(); ++iter) {
//if (iter->second > 0) printf("(0x%.02x, true)\n", iter->first);
//else printf("(0x%.02x, false)\n", iter->first);
ans.push_back(make_pair(iter->first, iter->second));
}
for (int i = 0; i < ans.size(); ++i) {
if (ans[i].second != -1) printf("{0x%.02x, true}", ans[i].first);
else printf("{0x%.02x, false}", ans[i].first);
if (i != ans.size()-1) printf(",\n");
else printf("\n");
}
return 0;
}
查看原帖
2 2
相关推荐
11-03 15:38
门头沟学院 嵌入式软件开发 Adventure_:10月下旬问过一次,10月底问过一次,说是最快1-2天就会开始谈薪了,但目前看来,还是没等到。两次电话的hr反馈基本都是国央企相对来说政策和审批会更严谨一些、更规范化流程一些,目前还在审批流程中,等定下来,就会开始谈薪和发正式offer
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
317254次浏览 2917人参与
# 上班苦还是上学苦呢? #
66772次浏览 553人参与
# 阿里云管培生offer #
35418次浏览 419人参与
# 地方国企笔面经互助 #
4263次浏览 12人参与
# 如果有时光机,你最想去到哪个年纪? #
19706次浏览 319人参与
# 选完offer后,你后悔学本专业吗 #
21118次浏览 151人参与
# 百度开奖 #
176692次浏览 1107人参与
# 如何一边实习一边秋招 #
994843次浏览 12652人参与
# 招聘要求与实际实习内容不符怎么办 #
10595次浏览 276人参与
# 学历or实习经历,哪个更重要 #
52906次浏览 414人参与
# 海康威视求职进展汇总 #
400019次浏览 3406人参与
# 正在实习的你,几点下班 #
52795次浏览 394人参与
# 国央企薪资爆料 #
10696次浏览 76人参与
# 租房前辈的忠告 #
109240次浏览 5232人参与
# 软开人,秋招你打算投哪些公司呢 #
43797次浏览 544人参与
# 得物求职进展汇总 #
67063次浏览 686人参与
# 软件开发薪资爆料 #
2184391次浏览 21809人参与
# 米哈游求职进展汇总 #
176692次浏览 1464人参与
# 美的求职进展汇总 #
206997次浏览 1619人参与
# 2023毕业生求职有问必答 #
120921次浏览 1303人参与
# 机械制造秋招总结 #
30481次浏览 354人参与
# 如果不工作真的会快乐吗 #
60221次浏览 528人参与