n行2n-1列动态规划
来源:互联网 发布:达芬奇调色软件下载 编辑:程序博客网 时间:2024/06/03 17:41
菜鸟和大牛Time Limit: 1000 MSMemory Limit: 65536 KTotal Submit: 232(88 users)Total Accepted: 102(84 users)Rating: Special Judge: NoDescription
blue和AutoGerk是好朋友。他们的相同点是都喜欢研究算法,不同点是AutoGerk已是大牛而blue还是菜鸟。blue经常拿一些自以为很难的问题去问AutoGerk,想难倒他,但是每次AutoGerk都能轻而易举地做出来。就在上个礼拜的星期天下午,AutoGerk正在玩游戏,blue又拿着他的问题来了。AutoGerk一看,依然是如此简单。AutoGerk很想玩他的游戏,但是又不想冷落朋友。于是他介绍你,同样是大牛级的人物,给blue,来回答他的问题。
blue的问题如下:
一个由n行数字组成的三角形,第i行有2i-1个正整数(小于等于1000),如下:
3
7 1 4
2 4 3 6 2
8 5 2 9 3 6 2
要求你用笔从第1行画到第n(0 < n ≤ 100)行,从当前行往下画的时候只能在相邻的数字经过,也就是说,如果从一行的一个数往下画,只能选择其左下或者正下或者右下三个数中的一个(如果存在的话),把所有被画起来的数字相加,得到一个和,求能得到的最大的和的值是多少。
上例中能得到的最大的和为3 + 7 + 4 + 9 = 23.
Input第一行,一个自然数T,表示总共给出的三角形数,对于每一个三角形,首先给出一个自然数n,表示将输入的三角形有n行。接下来有n行,第i行有2i-1个数字,
Output对于每个三角形,输出一个数,即能得到的最大的和。
Sample Input2
2
1
1 2 3
4
3
7 1 4
2 4 3 6 2
8 5 2 9 3 6 2
Sample Output4
23
#include<stdio.h>#include<cstring>#include<string>using namespace std;int res[1005][1005];int array[1005][1005];int digui_tirangle(int array[1005][1005],int m){ int i,j; for(i=m-1;i>=1;i--) //从最后一行向上动态规划 for(j=0;j<=(i-1)*2;j++) //**重点** { array[i-1][j]=max(max(array[i][j],array[i][j+1]),array[i][j+2])+array[i-1][j]; //状态转移方程 } return array[0][0];}int main(){ int n,k,l,t; scanf("%d",&t); while(t--) { scanf("%d",&n); for(k=0;k<n;k++) { for(l=0;l<(k+1)*2-1;l++) //每行2i+1个数据 scanf("%d",&array[k][l]); } int result; result=digui_tirangle(array,n); printf("%d\n",result); } return 0;}
- n行2n-1列动态规划
- n行n列动态规划
- 动态规划 problem N
- n划分为1,2,3等等(动态规划)
- 动态规划—Problem N
- 动态生成N行2列表格(N依据数据多少而定)【http://blog.csdn.net/guoyz_1 】
- 给一个奇数 N(1<N<2000),把从 1 到 N 2 的整数排成一个 N 行 N 列的方阵,使 该方阵的每一行、列和对角线上的 N 个数的和都相等
- HDU 1950 Bridging signals ( DP动态规划 O(n^2) )
- 动态规划解最长递增子序列(O(n^2))
- 最长回文子串-动态规划O(N^2)
- n 行n列的显示数据
- [动态规划]最长不降子序列问题-N*N算法
- JavaScript一维数组动态生成N行N列table表格的问题
- JavaScript:一维数组动态生成N行N列table表格
- 暑假- 动态规划 I-(N - Coins)
- 动态规划——problem n
- 动态规划求取C(n,m)
- 动态规划——5 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m
- 【3次称12个球】12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
- C#多线程开发1:使用Thread类创建与启动线程
- mybatis 批量更新
- spring基础配置
- 行递增,列递增二位数组,找某个元素
- n行2n-1列动态规划
- 面试70问经典回答
- Android---缩放View
- for循环中表达式执行顺序for(Expression a;Expression b;Expression c)
- ibatis批量修改、批量增加、批量删除
- 应用程序对设备 + IRP 的同步异步学习
- mybatis 批量删除
- 教学使者的特殊使命:让更多美国人了解当代中国,增强中美互信
- mybatis 批量新增