Source
UESTC 2016 Summer Training #14 Div.2
URAL 1962
My Solution
并查集
以前好像做过类似的题
首先如果一个节点有sz[i] > 2 则 ans = 0
如果有环, 而且不是最大的环, 则ans = 0
如果是最大的环, 则ans = 2 //! 最开始误认为是1, 白白WA了2发, 然后才明白 顺时针和逆时针2种方案
剩下的就是常规的ans了
先是求树的全排列, // 更像是圆排列 A(n, n) / n 或者说把1的位置固定然后求全排列
然后对于每个树:
1)只要节点数大于1, 都会有2头无论是不是直链, 都和直链一样
因为如果有2个分支, 那么那两个分支自己必须是直链(否则 ans = 0), 两个直链拼到root上, 拉直就是直链
所以这个时候每个树 ans*2
1)如果该树只有一个节点, 则只有一种情况了
复杂度 O(n)
#include
#include
#include
非特殊说明,本博所有文章均为博主原创,未经许可不得转载。
https://www.prolightsfxjh.com/
Thank you!
------from ProLightsfx
共有 0 条评论