輪狀病毒有很多變種,所有輪狀病毒的變種都是從乙個輪狀基產生的。乙個n輪狀基由圓環上n個不同的基原子
和圓心處乙個核原子構成的,2個原子之間的邊表示這2個原子之間的資訊通道。如下圖所示
n輪狀病毒的產生規律是在乙個n輪狀基中刪去若干條邊,使得各原子之間有唯一的資訊通道,例如共有16個不
同的3輪狀病毒,如下圖所示
現給定n(n<=100),程式設計計算有多少個不同的n輪狀病毒
第一行有1個正整數n
計算出的不同的n輪狀病毒數輸出316
//一開始非常nb地推了個組合數的公式,但是要寫高精階乘 高精除高精,就沒寫
//然後就寫longlong看看能過幾個點
//a掉乙個點,和題解對了下,發現只有n<=3的時候是對的
//不會別的做法,看了題解。
//有矩陣樹定理的做法和遞推的做法
//感覺遞推的比較好寫,不用寫高精乘法
//將n<=5的ans寫出來,可以發現f[n]=3*f[n-1]-f[n-2]+2
//其實上面那個式子是個斐波那契的變形,整理一下可以得到這個式子
//不可避免地要寫高精
#include
#include
#include
#include
using
namespace
std;
intn;
int ans[105][1005
];int len[105
];int mul[1005
];void calc(int
x)
if(cnt)
mul[++l]=cnt;
cnt=2
;
for(int i=1;i<=l;++i)
if(cnt)
ans[x][l+1]=cnt,len[x]=l+1
;
else
len[x]=l;
return;}
intmain()
FJOI2007 bzoj1002 輪狀病毒
description 輪狀病毒有很多變種,所有輪狀病毒的變種都是從乙個輪狀基產生的。乙個n輪狀基由圓環上n個不同的基原子 和圓心處乙個核原子構成的,2個原子之間的邊表示這2個原子之間的資訊通道。如下圖所示 n輪狀病毒的產生規律是在乙個n輪狀基中刪去若干條邊,使得各原子之間有唯一的資訊通道,例如共有...
BZOJ 1002 FJOI2007 輪狀病毒
1002 fjoi2007 輪狀病毒 time limit 1 sec memory limit 162 mb description 輪狀病毒有很多變種,所有輪狀病毒的變種都是從乙個輪狀基產生的。乙個n輪狀基由圓環上n個不同的基原子 和圓心處乙個核原子構成的,2個原子之間的邊表示這2個原子之間的資...
BZOJ1002 FJOI2007 輪狀病毒
標籤 高精度,數學 description 輪狀病毒有很多變種,所有輪狀病毒的變種都是從乙個輪狀基產生的。乙個n輪狀基由圓環上n個不同的基原子 和圓心處乙個核原子構成的,2個原子之間的邊表示這2個原子之間的資訊通道。如下圖所示 n輪狀病毒的產生規律是在乙個n輪狀基中刪去若干條邊,使得各原子之間有唯一...