做这题时发现是800分的题,感觉好奇怪,基环树怎么会怎么简单,看题后发现是构造一个满足条件的基环树的最小直径是多少。
那就推导一下:
n = 3
时,基环树如下:
最小直径显然是1。
n = 4
时,基环树如下:
最小直径为2。
n = 5
时,基环树如下:
可以发现,最小直径为2:
对于n > 3
的基环树都可以进行这样的构造:
环中节点数为3,其余节点放到同一个节点上,这样构造到树的直径恒为2。
代码:
_ = int(input())
print(1 + (_ > 3))
做这题时发现是800分的题,感觉好奇怪,基环树怎么会怎么简单,看题后发现是构造一个满足条件的基环树的最小直径是多少。
那就推导一下:
n = 3
时,基环树如下:
最小直径显然是1。
n = 4
时,基环树如下:
最小直径为2。
n = 5
时,基环树如下:
可以发现,最小直径为2:
对于n > 3
的基环树都可以进行这样的构造:
环中节点数为3,其余节点放到同一个节点上,这样构造到树的直径恒为2。
代码:
_ = int(input())
print(1 + (_ > 3))