文章分类 -  acm动态规划求解专题

摘要:任何思想方法都有一定的局限性,超出了特定条件,它就失去了作用。同样,动态规划也并不是万能的。适用动态规划的问题必须满足最优化原理和无后效性。1.最优化原理(最优子结构性质)最优化原理可这样阐述:一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简而言之,一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其具有最优子结构性质。图2例如图2中,若路线I和J是A到C的最优路径,则根据最优化原理,路线J必是从B到C的最优路线。这可用反证法证明:假设有另一路径J'是B到C的最优路径,则A到C的路线取I和J'比I和J 阅读全文
posted @ 2012-03-31 11:14 nba76ers 阅读(1982) 评论(0) 推荐(0)
摘要:滚动数组 举个简单的例子:int i,d[100];d[0]=1;d[1]=1;for(i=2;i<100;i++)d[i]=d[i-1]+d[i-2];printf("%d",d[99]);上面这个循环d[i]只需要解集中的前2个解d[i-1]和d[i-2];为了节约空间用滚动数组的方法int d[3];d[0]=1;d[1]=1;for(i=2;i<100;i++)d[i%3]=d[(i-1)%3]+d[(i-2)%3];printf("%d",d[99%3]);注意上面的运算,我们只留了最近的3个解,数组好象在“滚动‿一样,所以叫滚动数 阅读全文
posted @ 2012-03-22 16:59 nba76ers 阅读(169) 评论(0) 推荐(0)