程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU1087

HDU1087

編輯:C++入門知識

[java] 
package DP; 
 
import java.util.*; 
 
//狀態轉移方程 b[i]=max(b[i], b[j]+a[i]); 
public class HDU1087 { 
 
    public static void main(String[] args) { 
        Scanner sc = new Scanner(System.in); 
        int n; 
        int[] a; 
        int[] b; 
        while (sc.hasNext()) { 
            n = sc.nextInt(); 
            if (n == 0) 
                break; 
            a = new int[n]; 
            b = new int[n]; 
 
            int sum = 0; 
 
            for (int i = 0; i < n; i++) { 
                a[i] = sc.nextInt(); 
            } 
            b[0] = a[0]; 
            for (int i = 1; i < n; i++) { 
                b[i] = a[i]; 
                for (int j = 0; j < i; j++) { 
                    if (a[i] > a[j] && b[i] < b[j] + a[i]) 
                        b[i] = b[j] + a[i]; 
                    if (sum < b[i]) 
                        sum = b[i]; 
                } 
            } 
            System.out.println(sum); 
 
        } 
 
    } 
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved