关注
贴一个我的,思路也是用邻接表保存节点的string和他自身是哪一个节点,然后串在每个父节点后面最后dfs。就是前缀的那些符号条件要仔细考虑。 #include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
void DFS(vector<vector<pair<string,int>>> &dir, int root, string mask) {
string next_mask;
for (int i = 0; i < dir[root].size(); ++i) {
pair<string, int> node = dir[root][i];
cout << mask;
if (i != dir[root].size() - 1) {
cout << "|-- ";
}
else {
cout << "`-- ";
}
cout << node.first << endl;
if (i == dir[root].size() - 1)
{
next_mask = " " + mask;
}
else {
next_mask = mask + "| ";
}
DFS(dir, node.second, next_mask);
}
}
bool cmp(pair<string, int> a, pair<string, int> b) {
return a.first < b.first;
}
int main() {
int n;
cin >> n;
vector<vector<pair<string,int>>> dir(n + 1);
for (int i = 0; i < n; ++i) {
string node_s;
int fa_idx;
pair<string, int> node;
cin >> node_s >> fa_idx;
node.first = node_s;
node.second = i+1;
dir[fa_idx + 1].push_back(node);
}
for (int i = 0; i < dir.size(); ++i) {
sort(dir[i].begin(), dir[i].end(),cmp);
}
cout << dir[0][0].first << endl;
DFS(dir, 1, "");
return 0;
}
查看原帖
点赞 1
相关推荐
09-22 22:22
中山大学 Java 点赞 评论 收藏
分享
10-14 10:25
北京工业大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 同bg的你秋招战况如何? #
173450次浏览 1015人参与
# 2022毕业即失业取暖地 #
115682次浏览 702人参与
# 360集团校招 #
20710次浏览 164人参与
# 你实习是赚钱了还是亏钱了? #
28919次浏览 236人参与
# CVTE求职进展汇总 #
22439次浏览 319人参与
# 用一句话形容你的团队氛围 #
17599次浏览 176人参与
# 京东开奖 #
466479次浏览 2662人参与
# 哪些公司校招卡第一学历 #
219569次浏览 775人参与
# 牛客租房专区 #
122201次浏览 1347人参与
# 嵌入式岗知多少 #
58166次浏览 548人参与
# 联影医疗求职进展汇总 #
5352次浏览 24人参与
# 毕业论文进行时 #
6044次浏览 80人参与
# 机械人与华为的爱恨情仇 #
136688次浏览 1011人参与
# 58同城求职进展汇总 #
39617次浏览 263人参与
# 我来点评面试官 #
15549次浏览 109人参与
# 找实习你看重大厂光环还是业务方向 #
40966次浏览 163人参与
# 面对逼签的应对技巧 #
6295次浏览 32人参与
# 扒一扒那些奇葩实习经历 #
126108次浏览 1097人参与
# 今年秋招是回暖还是遇冷 #
29656次浏览 187人参与
# 腾讯音乐求职进展汇总 #
135433次浏览 1004人参与
# 实习返校后,你的精神状态是__? #
36855次浏览 153人参与
查看12道真题和解析