









uyhip2016 June
好不容易在uyhip上看到一个拼题→_→
没有做出bonus。。日
我交过去的答案见这里。。交过去之后michael告诉我bonus做错了。
题面描述:递推式
f1,1=f1,2=f1,3=1
fn,1=fn−1,1+fn−1,2,fn,2=fn−1,1+fn−1,2+fn−1,3,fn,3=fn−1,2+fn−1,3
给出一个计算器要求在7次或以内求出fn,1+fn,2+fn,3的值。
拼!
首先fn,1=fn,3,然后就有fn,1=fn−1,1+fn−1,2,fn,2=2fn−1,1+fn−1,2。
令F1(x)=∑fn,1xn,F2(x)=∑fn,2xn。这样就有
F1(x)=x(F1(x)+F2(x)+1)
F2(x)=x(2F1(x)+F2(x)+1)
解得
F1(x)=−xx2+2x−1
F2(x)=−x2+xx2+2x−1
令α=√2−1,β=−√2−1,则α,β是x2+2x−1的根。
那么
F1(x)=αβ−αx−α+βα−βx−β
F2(x)=x(α+1β−αx−α+β+1α−βx−β)
然后1x−α=∑i−xiαi+1。(为什么我写这么详细。。因为自己根本不熟悉生成函数这套理论啊QAQ)
然后就可以推出
f2,n=−α+1αn(β−α)−β+1βn(α−β)
然而答案是f2,n+1(然后代入α,β的值),所以就是
ansn=12αn+1+12βn+1
接下来是喜闻乐见的7步操作。。。
首先注意这个东西就是
rnd(12αn+1)=rnd(0.5×(1α)n+1)=rnd(0.5×(en+1)−lnα)
其中rnd表示找最近的整数。
然后预处理x=−lnα,执行如下操作:inc exp xy MS / 2 rnd
就可以7次之内出解辣