Symmetric Matrix (dp递推)牛客

博客内容探讨了一种n*n的对称矩阵问题,其中每行之和为2,矩阵可以被视为无自环的图的邻接矩阵。通过转换思维,将问题转化为求解图中环的构造方式。文章提出动态规划(dp)的思路,详细阐述了dp[n]的递推公式,并通过化简找到了与dp[n-1]的关系,从而实现递推求解。
摘要由CSDN通过智能技术生成

在这里插入图片描述
题意: 问我们一个n*n沿对角线对称的矩阵有多少个,且每行之和为2
该题我们需要转换一下思想,把此图看成一张图的邻接矩阵,这张图因为当i==j时,a[ i ] [ j ]=0,故不存在自环,且每行和为2,也就是说每个点都有两条边连接着,a[ i ][ j ]=2,意味着存在重边,也就是说两点成环,这张图就是存在许多环,问你多少种成环情况?
思路: 把问题转化成这个角度就更好想了,设dp[ n ]为n个节点时的成环方案:
1. 我们可以将第n个点接入n-1个点中,使n个点成为一个环,则(n-1)!/2方案,因为环是对称的,除以2
2. 我们可以从n-1个点中取一个点出来与第n个点组成一个新环,则(n-1)*dp[n-2]种方案
3. 我们可以从n-1个点种取出x个点,剩下的点与第n个点组成一个新环, ( 2 &lt; = x &lt; = n − 3 ) (2&lt;=x&lt;=n-3) (2<=x<=n3),因为若x=1,自身无法成环,若x=n-2,就是第二种情况/2.但是第二种比较特殊,我们把它摘出来,因为若是放在第三种的的公式里就是除于2,就错误了,所以有 ∑ x = 2 n − 3 C n − 1 x ∗ d p [ x ] ∗ ( n − 1 − x ) ! / 2 = ∑ x = 2 n − 3 ( n − 1 ) ! / ( 2 ∗ x ! ) \sum_{x=2}^{n-3}C_{n-1}^{x}*dp[x]*(n-1-x)!/2=\sum_{x=2}^{n-3}(n-1)!/(2*x!) x=2n3Cn1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值