我们可以用模拟的做法来解决这个问题.我们先假设给出的树是 k-multihedgehog 然后由外自内一层一层删除并记录删了几层,最后再将我们得到的层数与 $k$ 进行比较,判断是否相同即可.当然,如果在模拟过程中发现了不合题意的情况,就直接输出 No 并退出.
我们可以先把最外层的点抽出来,然后找到他们的父亲节点,再将这个父亲节点处理了,处理完这个父亲节点的同时把这个父亲节点推进队列里去,成为下一轮的"最外层的点",如此往复.同时,由于相邻两层要分开处理,我们需要两个队列滚一下.
拿到这题的时候,我真的觉得......挺简单,结果一直 WA ,发现这道题坑点很多,处理也算是比较麻烦.此外,不直接从外向内处理,而是每次找父亲节点处理最外层的思路也算是比较有趣的了.