解题思路:
注意事项:
参考代码:
def find_root(tree):
# 找到根节点
nodes = set(tree.keys())
children = set()
for node in tree.values():
children.update(node)
return (nodes - children).pop()
def find_max_children(tree):
# 找到孩子最多的节点
max_node = None
max_count = 0
for node, children in tree.items():
if len(children) > max_count:
max_node = node
max_count = len(children)
return max_node
def find_children(tree, node):
# 找到节点的孩子
return sorted(tree[node])
# 读取输入
n, m = map(int, input().split()) # 结点个数和边数
tree = {}
for _ in range(m):
x, y = map(int, input().split()) # x是y的父节点
if x not in tree:
tree[x] = []
tree[x].append(y)
# 输出结果
root = find_root(tree)
max_node = find_max_children(tree)
children = find_children(tree, max_node)
print(root)
print(max_node)
print(" ".join(map(str, children)))
0.0分
0 人评分
假币问题 (C++代码)(向上取整的一种处理方式)浏览:1671 |
点我有惊喜!你懂得!浏览:973 |
C语言训练-自守数问题 (C语言代码) long long浏览:1067 |
【回文数(二)】 (C++代码)浏览:874 |
川哥的吩咐 (C++代码)浏览:1019 |
弟弟的作业 (C++代码)浏览:1305 |
C二级辅导-阶乘数列 (C语言代码)浏览:692 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:549 |
WU-输出正反三角形 (C++代码)浏览:1022 |
WU-整除问题 (C++代码)浏览:612 |