2 4 高精度 FJOI2007 輪狀病毒

2021-08-15 09:02:46 字數 1009 閱讀 5521

傳送門:

暴力找規律

發現n=1~5時答案是1,5,16,45,121

奇數項是平方數,偶數項是平方數減4

1,5,16,45,121 分別是1^2,3^2-4,4^2,7^2-4,11^2

1,3,4,7,11這個數列有類似於斐波那契數列的性質,只不過前兩項是1和3罷了

那麼我們就可以遞推求這個類斐波那契數列的第n項,然後平方,然後再根據n的奇偶來決定是否減4

高精度**如下

#include#include#include#include#include#include

#include#includeusing namespace std;

class bigint

bigint(int data)

}void init(int data)

}};bigint operator + (bigint a,bigint b)

if(ans.num[s+1]!=0)

ans.size++;

return ans;

}bigint operator - (bigint a,bigint b)

while(ans.num[ans.size]==0)

ans.size--;

return ans;

}bigint operator * (bigint a,bigint b)

if(ans.num[k]==0)k--;

ans.size=k;

return ans;

}ostream & operator << (ostream &os,bigint a)

bigint p,q,ans;

int n;

int main()

if(n%2)ans=p;

else ans=q;

ans=ans*ans;

if(n%2==0)ans=ans-4;

cout0;}

llap.

FJOI2007 輪狀病毒

提交傳送門 就是公式嘛 f i f i 1 3 f i 2 description 輪狀病毒有很多變種,所有輪狀病毒的變種都是從乙個輪狀基產生的。乙個n輪狀基由圓環上n個不同的基原子和圓心處乙個核原子構成的,2個原子之間的邊表示這2個原子之間的資訊通道。如下圖所示 n輪狀病毒的產生規律是在乙個n輪狀...

FJOI2007 輪狀病毒

輪狀病毒有很多變種。許多輪狀病毒都是由乙個輪狀基產生。乙個n輪狀基由圓環上n個不同的基原子和圓心的乙個核原子構成。2個原子之間的邊表示這2個原子之間的資訊通道,如圖1。n輪狀病毒的產生規律是在n輪狀基中刪除若干邊,使各原子之間有唯一一條資訊通道。例如,共有16個不同的3輪狀病毒,入圖2所示。給定n ...

FJOI2007 輪狀病毒(矩陣樹定理)

time limit 1 sec memory limit 162 mb submit status discuss 輪狀病毒有很多變種,所有輪狀病毒的變種都是從乙個輪狀基產生的。乙個n輪狀基由圓環上n個不同的基原子 和圓心處乙個核原子構成的,2個原子之間的邊表示這2個原子之間的資訊通道。如下圖所示...