思考難度:提高?
**難度:提高?
演算法0:暴力
實際得分:0
演算法1:
考慮x=y=1x=y=1x=
y=1的情況,顯然有an=an−1+an−2a_n=a_+a_an
=an
−1+
an−2
(廢話),故
an×an+1a_n\times a_an
×an
+1=an×(an+an−1)=a_n\times (a_n+a_)=a
n×(
an+
an−1
)=an2+an−1×an=a_n^2+a_\times a_n=a
n2+
an−1
×an
=an2+an−12+an−2×an−1=a_n^2+a_^2+a_\times a_=a
n2+
an−1
2+a
n−2
×an−
1=...+a22+a1×a2=...+a_2^2+a_1\times a_2=.
..+a
22+
a1×
a2=...+a22+a12+a1×(a2−a1)=...+a_2^2+a_1^2+a_1\times (a_2-a_1)=.
..+a
22+
a12
+a1
×(a2
−a1
)故ans=an×an+1−a1×(a2−a1)ans=a_n\times a_-a_1\times (a_2-a_1)an
s=an
×an
+1−
a1×
(a2
−a1
) 實際得分:20分
演算法2:
注意到an2=(x×an−1+y×an−2)2a_n^2=(x\times a_+y\times a_)^2an
2=(
x×an
−1+
y×an
−2)
2=x2×an−12+y2×an−22+2xy×an−1×an−2=x^2\times a_^2+y^2\times a_^2+2xy\times a_\times a_=x
2×an
−12
+y2×
an−2
2+2
xy×a
n−1
×an−
2=x2×an−12+y2×an−22+2xy×an−2×(x×an−2+y×an−3)=x^2\times a_^2+y^2\times a_^2+2xy\times a_\times (x\times a_+y\times a_)=x
2×an
−12
+y2×
an−2
2+2
xy×a
n−2
×(x×
an−2
+y×
an−3
)=x2×an−12+y2×an−22+2xy×(x×an−22+y×an−2×an−3)=x^2\times a_^2+y^2\times a_^2+2xy\times (x\times a_^2+y\times a_\times a_)=x
2×an
−12
+y2×
an−2
2+2
xy×(
x×an
−22
+y×a
n−2
×an−
3)故an2a_n^2an
2可以由an−12,an−22,an−1×an−2a_^2,a_^2,a_\times a_an
−12
,an−
22,
an−1
×an
−2轉移過來,而an−1×an−2a_\times a_an
−1×
an−2
可以由an−12,an−2×an−3a_^2,a_\times a_an
−12
,an−
2×a
n−3
轉移過來。
矩陣加速即可。
實際得分:100
數論出題組比賽用題 傳球遊戲
思考難度 提高?難度 提高?正解 矩陣快速冪 若令f i j f i j 為第ii 次傳傳到第j j個人的方案數,易知f i j f i 1 j 1 f i 1 j 1 f i j f i 1 j 1 f i 1 j 1 但是直接這樣遞推o n m o nm 會t letl e,於是想到用矩陣來加速...
ACM 數論 博弈 (比賽用)
1.bash博弈 巴什博弈 只有一堆n個物品,兩個人輪流從中取物,規定每次最少取乙個,最多取m個,最後取光者為勝。if n m 1 0 cout 後手必勝 2.威佐夫博弈 wythoff game 有兩堆各若干的物品,兩人輪流從其中一堆取至少一件物品,至多不限,或從兩堆中同時取相同件物品,規定最後取...
數論三題 簡單題 比賽排名 質因數
這三個題思路都不複雜,就放在一起 計算 由於最終結果可能超過int的範圍,因此請將運算結果對1000000007取模。乙個整數t t 200000 表示資料組數。每行兩個整數m,n。0 m n 2000 就是求組合數啊 c n,m 想一想一層套一層的迴圈,每一次都要從前乙個數 1開始,不是等價於前乙...