摘要: n一个城市的街道布局如下:从最左下方走到最右上方,每次只能往上或往右走,一共有多少种走法?对于图中任意的一个点(i,j),只能由(i-1,j)和(i,j-1)走过来,所以(i,j)点的方法数=(i-1,j)+(i,j-1)的方法数;(0,0)点到(0,n)的方法数都为1;(0,0)点到(n,0)的方法数也都为1;//递归的代码:int f[100][100];int getf(int x,int y){ if (f[x][y]!=-1) return f[x][y]; int result; if (x==0||y==0) result=1; else result=getf(x-1,y)+g 阅读全文
posted @ 2012-10-12 08:45 兴安黑熊 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?本题可以从上往下递推,也可以从下往上递推。从下往上:#include <iostream>using namespace std;int main(int argc, char *argv[]){ int c,n,data[102][102],inp[102][102]; cin>>c; while(c--) { cin>>n; memset(data,0,sizeof(data)); memse 阅读全文
posted @ 2012-10-12 08:32 兴安黑熊 阅读(185) 评论(0) 推荐(0) 编辑