【DP】bzoj1002

题干:

轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的。一个N轮状基由圆环上N个不同的基原子
和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道。如下图所示

  N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不
同的3轮状病毒,如下图所示

  现给定n(N<=100),编程计算有多少个不同的n轮状病毒

网上看了很多行列式的解法,觉得自己的数学姿势水平有限,于是还是觉得DP靠谱(据说可以推规律,但是我觉得这个题打表很暴躁啊。。。。。

于是d[i][0]表示i没有和中心点相连,dp[i][1]表示i和中心点相连
dp[i][0]=dp[i-1][0]+dp[i-1][1] 如果前面也不相连,那必须和i连边,如果前面和中心点相连,那么一定不能连边(因为定义就是i点和中心点不相连,
dp[i][1]=dp[i-1][0]+2*dp[i-1][1];如果前面不相连,那么只能前面先和i连再和中心点连,如果前面相连,那么可以前面连i,或者i直接和中心点相连。

嘛环拆链的dp还是做得少,太年轻了

顺便记录一下生成树计数的做法,
一个无向图的生成树个数就是此图的基尔霍夫矩阵的任意一个n-1阶主子式的绝对值
基尔霍夫矩阵等于原图的度数矩阵减去邻接矩阵。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值