BZOJ1002 FJOI2007 輪狀病毒

2021-08-09 06:07:36 字數 1156 閱讀 7156

標籤:高精度,數學

description

輪狀病毒有很多變種,所有輪狀病毒的變種都是從乙個輪狀基產生的。乙個n輪狀基由圓環上n個不同的基原子

和圓心處乙個核原子構成的,2個原子之間的邊表示這2個原子之間的資訊通道。如下圖所示

n輪狀病毒的產生規律是在乙個n輪狀基中刪去若干條邊,使得各原子之間有唯一的資訊通道,例如共有16個不

同的3輪狀病毒,如下圖所示

現給定n(n<=100),程式設計計算有多少個不同的n輪狀病毒

input

第一行有1個正整數n

output

計算出的不同的n輪狀病毒數輸出

sample input

3

sample output

16

分析:打表找規律,f[i]=f[i-1]*3+2-f[i-2]

高精度乘法和減法

code

#include#define rep(i,a,b) for(int i=a;i<=b;i++)

#define dep(i,a,b) for(int i=a;i>=b;i--)

#define mem(x,num) memset(x,num,sizeof x)

#define ll long long

using namespace std;

inline ll read()

while(ch>='0'&&ch<='9')

return x*f;

}const int maxn=106;

struct nodef[maxn];

int n;

node mul(node a,ll k)

if(a.a[a.len+1]!=0)a.len++;

return a;

}node sub(node a,node b)

rep(i,1,a.len)

} while(a.a[a.len]==0)a.len--;

return a;

}int main()

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個原子之間的資...

BZOJ 1002 FJOI2007 輪狀病毒

好久好久好久好久沒寫部落格了,因為csdn改版了,一直不大喜歡,所以也就不大樂意上部落格了。事實上說起來也沒什麼題好寫的,有時候還是會做到好題的。因為已經忘記了csdn忘記了我有部落格,於是就沒寫了。but 如今還是繼續開始吧,有什麼感覺不錯的題還是能夠mark下的。接下來是題意,中文題就是好,直接...