Submit: 5165 Solved: 2808
Description
轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的。一个N轮状基由圆环上N个不同的基原子
和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道。如下图所示
![](http://www.lydsy.com/JudgeOnline/upload/201604/1(3).png)
N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不
同的3轮状病毒,如下图所示
![](http://www.lydsy.com/JudgeOnline/upload/201604/2(3).png)
现给定n(N<=100),编程计算有多少个不同的n轮状病毒
Input
第一行有1个正整数n
Output
计算出的不同的n轮状病毒数输出
Sample Input
3
Sample Output
16
HINT
Source
数学问题 递推 脑洞题 高精度
标解好像是用基尔霍夫矩阵打表以后找规律递推,考点是看规律和写高精度。
得出的递推式是f[i]=$3*f[i-1]-f[i-2]+2$
但是也可以用行列式花式推导出这式子。%%%vfk dalao
->(等找到链接补一发)
不想写高精度啊……找份py代码混过去吧……
py原来不需要加分号的嘛……加了分号还wa了一发。
1 n=int(raw_input()) 2 f=[0]*105 3 f[1]=1 4 for i in range(2,101): 5 f[i]=3*f[i-1]-f[i-2]+2 6 print(f[n])