编程题 1 台阶问题/斐波纳挈 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2) 第二种记忆方法 def memo(func): cache = ...
分类:
编程语言 时间:
2017-07-08 17:49:57
阅读次数:
314
传送门 题解给出了一个很强势的dp: i<K $$dp[i][len]*Fib[len+2-(t[i]==1)] -> dp[i+1][len]$$ $$dp[i][len]*Fib[len+1-(t[i]==1)] -> dp[i+1][len+1]$$ i>=K $$dp[i][len]*Fib ...
分类:
其他好文 时间:
2017-07-07 10:05:51
阅读次数:
149
路由表基本概念 1、路由是由多个不同的数据结构的组合来描述的,每个数据结构代表路由信息的不同部分。例如,一个fib_node对应一个单独的子网,一个fib_alias对应一条路由。这样做的原因是只需通过部分字段可以区分多条路由。路由子系统不是维护一个庞大而臃肿的结构而是将路由分散为多个片段,这样更容 ...
分类:
系统相关 时间:
2017-07-05 15:24:31
阅读次数:
265
HDU 4565 So Easy! 类似fib的构造 设Fn = x + y*sqrt(b) 啪啦啪啦 #include <cstdio> #include <cstring> #include <vector> #include <cmath> #include <iostream> using ...
分类:
其他好文 时间:
2017-06-28 20:24:18
阅读次数:
224
//递归解法 function fib(n){ if(n < 1){ throw new Error('invalid arguments'); } if(n == 1 || n == 2){ return 1; } return fib(n - 1) + fib(n - 2); } //非递归解法... ...
分类:
其他好文 时间:
2017-06-26 23:57:44
阅读次数:
337
class Fib(object): def __init__(self): self.a,self.b=0,1 def __iter__(self): return self def __next__(self): self.a,self.b=self.b,self.a+self.b if sel... ...
分类:
其他好文 时间:
2017-06-05 00:38:00
阅读次数:
146
http://acm.hdu.edu.cn/showproblem.php?pid=4549 f[0] = a^1*b^0%p,f[1] = a^0*b^1%p,f[2] = a^1*b^1%p.....f[n] = a^fib[n-1] * b^fib[n-2]%p。 这里p是质数,且a,p互素, ...
分类:
其他好文 时间:
2017-05-30 15:42:34
阅读次数:
199
给出一个数字,用FIB数列各项加加减减来得到。 问最少要多少个(可以重复使用) 大概试了一下,fibonacci数列的增长是很快的,大概到了90+项就超过了题目范围…… 所以每次找一个最近的fibonacci数试一下就好,实测跑得飞快。 ...
分类:
其他好文 时间:
2017-05-20 10:12:18
阅读次数:
186
如果一个函数直接或者间接调用了自己,那么就形成了递归(recursion),比如斐波那契数列的一个实现 def fib(n): if n <= 2: return 1 else: return fib(n - 1) + fib(n - 2) 递归一定要有结束条件,否则就形成了死循环, 比如下面的例子 ...
分类:
编程语言 时间:
2017-05-15 12:01:07
阅读次数:
225
简单的定义为 能工作,但这样并没有意义,因为这样定义在处理 fib(n-2)和fib(n-1)时就是普通fib函数了 步数: 在计算fib(n)时 需要fib(n-1)和fib(n-2)而fib(n-1)的值需要fib(n-2)的值,如使用记忆法,则fib(n-2),fib(n-3)已事先存在表中。 ...
分类:
其他好文 时间:
2017-05-10 01:01:46
阅读次数:
204