POJ3176-Cow Bowling(dp)
2017-07-04 11:31
351 查看
大致题意:
输入一个n层的三角形,第i层有i个数,求从第1层到第n层的所有路线中,权值之和最大的路线。
规定:第i层的某个数只能连线走到第i+1层中与它位置相邻的两个数中的一个。
解题方法:
用二维数组way[][]靠左存储三角形内的数据,那么连线规则变更为
way[i][j] → Way[i+1][j]
或 Way[i][j] → Way[i+1][j+1]
注意:way[][]初始化为输入时的三角形数值,此时way[i][j]表示该点位置上的权值,没输入的位置初始化为0。
解题思路:
动态规划。
way[i][j]表示以第i行j列的位置作为终点的路线的最大权值。 (注意区分初始化时的意义)
那么way[i][j]的最大值取决于way[i-1][j-1]和way[i-1][j],从这两者之间筛选出最大值,加到way[i][j]上,即为way[i][j]的最大权值。
最后只要比较第n行中所有位置的权值way
[j],最大的一个即为所求。
AC代码
输入一个n层的三角形,第i层有i个数,求从第1层到第n层的所有路线中,权值之和最大的路线。
规定:第i层的某个数只能连线走到第i+1层中与它位置相邻的两个数中的一个。
解题方法:
用二维数组way[][]靠左存储三角形内的数据,那么连线规则变更为
way[i][j] → Way[i+1][j]
或 Way[i][j] → Way[i+1][j+1]
注意:way[][]初始化为输入时的三角形数值,此时way[i][j]表示该点位置上的权值,没输入的位置初始化为0。
解题思路:
动态规划。
way[i][j]表示以第i行j列的位置作为终点的路线的最大权值。 (注意区分初始化时的意义)
那么way[i][j]的最大值取决于way[i-1][j-1]和way[i-1][j],从这两者之间筛选出最大值,加到way[i][j]上,即为way[i][j]的最大权值。
最后只要比较第n行中所有位置的权值way
[j],最大的一个即为所求。
AC代码
package dp; import java.util.Scanner; public class Main{ /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int map[][]=new int[n+1][n+1]; init(map,n); int sum=-1; for(int i=1;i<=n;i++){ for(int j=1;j<=i;j++){ map[i][j]=scan.nextInt(); map[i][j]+=Math.max(map[i-1][j-1],map[i-1][j]); if(i==n&&sum<map[i][j]){ sum=map[i][j]; } } } // for(int i=1;i<=n;i++){ // for(int j=1;j<=i;j++){ // map[i][j]+=Math.max(map[i-1][j-1],map[i-1][j]); // if(i==n&&sum<map[i][j]){ // sum=map[i][j]; // } // } // // } System.out.println(sum); } private static void init(int[][] map,int n) { // TODO Auto-generated method stub for(int i=0;i<=n;i++){ for(int j=0;j<=n;j++){ map[i][j]=0; } } } }
相关文章推荐
- poj3176--Cow Bowling(dp:数塔问题)
- poj3176——Cow Bowling(dp)
- poj3176--Cow Bowling(dp:数塔问题)
- [dp]poj3176 Cow Bowling
- POJ3176_Cow Bowling【数塔DP】
- POJ3176——Cow Bowling(水DP)
- POJ3176-Cow Bowling-简单dp
- [DP]poj3176 Cow Bowling
- 初识动归(DP):POJ3176--Cow Bowling
- POJ 3176-Cow Bowling(DP||记忆化搜索)
- poj 3176 Cow Bowling 数塔dp
- POJ3176-基础DP
- Poj 3176 Cow Bowling【dp】
- poj3176 简单dp
- Cow Bowling(POJ, 3176, 基础dp)
- POJ3176-Cow Bowling
- poj 3176 Cow Bowling 简单DP
- poj3176 dp
- poj 1163 The Triangle &poj 3176 Cow Bowling (dp)
- 【poj 3176】 Cow Bowling 递推dp