摘要: 在做编程题目的时候经常会遇到“斐波那契数列”相关的题目,尤其在做OJ中。下面说一些方法: (一)递归 递归是最慢的会发生重复计算,时间复杂度成指数级。long long fac(int n){ if(n==1) return 1; else if(n==2) return 2; else return fac(n-1)+fac(n-2);} (二)循环 利用临时变量来保存中间的计算过程,加快运算。long long fac(int n){ long long a=1,b=2,c; if(n==1) return 1; else if(n==2... 阅读全文
posted @ 2013-12-20 22:47 来自大山深处的菜鸟 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 背包问题,可以很明显的判断为背包问题,因为他要求所有的 砝码都必须放上去,于是乎就变成了 01背包了 ,每种状态的取决于前一个状态,然后分析一下,因为他有-15 由于杠杆原理可以很清楚的知道最小的 为 20*15*25 于是就将状态平衡的位置进行相应的 移到了 dp【7500】;好了现在问题都解决了 接下来进行dp就可以了#include #include#includeusing namespace std;int dp1[15000],dp2[15000];int d[22],w[22];int main(){ int C,G; while(scanf("%d%d",& 阅读全文
posted @ 2013-12-20 16:13 来自大山深处的菜鸟 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法: (1)图的深度优先遍历和广度优先遍历. (2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra) (poj1860,poj3259,poj1062,poj2253,poj1125,poj2240) (3)最小生成树算法(prim,krus 阅读全文
posted @ 2013-12-20 10:12 来自大山深处的菜鸟 阅读(253) 评论(0) 推荐(0) 编辑