zoukankan      html  css  js  c++  java
  • 动态规划

    package test;
    
    import java.util.Scanner;
    
    public class 动态规划 {
        /*
         * 数字三角形(POJ1163)
            
            在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或 右下走。只需要求出这个最大和即可,不必给出具体路径。 三角形的行数大于1小于等于100,数字为 0 - 99
            输入格式:
            5      //表示三角形的行数    接下来输入三角形
            7
            3   8
            8   1   0
            2   7   4   4
            4   5   2   6   5
            要求输出最大和
    
         */
        public static void main(String[] args){
            Scanner in=new Scanner(System.in);
            int n=in.nextInt();
            int map[][]=new int[n][n];
            for(int i=0;i<n;i++){
                for(int j=0;j<=i;j++){
                    map[i][j]=in.nextInt();
                }
            }
            
            int ans[][]=new int[n][n];
            for(int i=0;i<n;i++){
                ans[n-1][i]=map[n-1][i];
            }
            for(int i=n-2;i>=0;i--){
                for(int j=0;j<=i;j++){
                    ans[i][j]=Math.max(ans[i+1][j], ans[i+1][j+1])+map[i][j];
                }
            }
            
            System.out.print(ans[0][0]);
        }
    }
  • 相关阅读:
    AWK
    正则表达式
    BASH
    C# 常用控件的一些属性及方法
    C# FTP
    C# Delegate
    DLL/EXE查看工具Dumpbin
    VBA 破解Excel工作表保护密码
    VB6 IP地址+网卡地址+网卡类型
    编程之路┊由C#风潮想起的——给初学编程者的忠告 ZT
  • 原文地址:https://www.cnblogs.com/liushuncheng/p/7899133.html
Copyright © 2011-2022 走看看