Bzoj4766: 文艺计算姬(Matrix-tree/prufer)

BZOJ
答案就是 n m − 1 m n − 1 n^{m-1}m^{n-1} nm1mn1
p r u f e r prufer prufer 证明:
n n n 中的数字出现 m − 1 m-1 m1 次, m m m 中出现 n − 1 n-1 n1 次,根据 p r u f e r prufer prufer 解码可知, n , m n,m n,m 中的数字和内部顺序确定了,那么它们的相对位置也可以确定
m a t r i x − t r e e matrix-tree matrixtree 证明:
构建基尔霍夫矩阵,去掉第一行第一列,发现分成四个部分
左上角 ( n − 1 ) × ( n − 1 ) (n-1)\times (n-1) (n1)×(n1),主对角线为 m m m,其余为 0 0 0
右下角 m × m m\times m m×m,主对角线为 n n n,其余为 0 0 0
左下右上都是 − 1 -1 1
手动求行列式
把第 n n n 行加上前 n − 1 n-1 n1 行,变成
m − 1 , m − 1 , . . . , m − 1 , 1 , 1 − n , 1 − n , . . . , 1 − n m-1,m-1,...,m-1,1,1-n,1-n,...,1-n m1,m1,...,m1,1,1n,1n,...,1n
再加上后 m − 1 m-1 m1 行,变成
0 , 0 , . . . , 0 , 1 , 1 , 1 , . . . , 1 0,0,...,0,1,1,1,...,1 0,0,...,0,1,1,1,...,1
依次加到前 n − 1 n-1 n1 行中,变成了下三角
对角线上有 1 1 1 1 1 1 n − 1 n-1 n1 m m m m − 1 m-1 m1 n n n

代码不贴了,直接快速幂+龟速乘即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值