动态规划VS分治策略

时间:2023-12-25 17:44:49
•在用分治法解决问题时,由于子问题的数目往往是问题规模的指数函数,因此对时间的消耗太大。
•动态规划的思想在于,如果各个子问题不是独立的,不同的子问题的个数只是多项式量级,而我们能够保存已经解决的子问题的答案,在需要的时候再找出已求得的答案,这样就可以避免大量的重复计算。

由此而来的基本思路是,用一个表记录所有已解决的子问题的答案,不管该问题以后是否被用到,只要它被计算过,就将其结果填入表中

斐波纳斯//哈哈

int F(int n, int a[N])
{ if (n==) return ;
if (n==) return ;
a1=a[n-];
a2=a[n-];
if。。。。
//用a1和a2来代替已经算出来的结果,就能避免一定程度上的递归,用来减少计算时间和计算空间
return F(n-, a)+F(n-, a);
}