给你一棵树,可以在这棵树上进行若干次操作,每次操作可以把两条长度相同的链,根据一个中点合并在一起。 然后问你经过若干次合并之后,最后的最短链长度是多少。 如果不能合并成一条链,输出-1.
拓扑排序,每次我们从度数为1的点出发bfs。 然后往上合并,如果遇到交叉点,我们就合并链。 我们用一个set来合并就好了,如果两条链长度一样,在set里面自动就合并了。 显然能够bfs的点的set里面只有一个数。 而且只能有一个点的set里面有两个数。 最后扫一遍check一下就好了。 bfs:http://www.cnblogs.com/qscqesze/p/6401615.html dfs:http://www.cnblogs.com/RUSH-D-CAT/p/6404742.html
新闻热点
疑难解答