杭电1506 java

Posted 一世安然L

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了杭电1506 java相关的知识,希望对你有一定的参考价值。

求最大子矩阵面积(dp)

 

import java.util.*;
public class Main1{
  
    public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
 
          int n = sc.nextInt();
          int a[]= new int [2*n+1];
 
          for(int i=1;i<=n;i++){
              a[i]=sc.nextInt();
          }
         int l[]=new int[10010];
         int r[]=new int[10010];
         l[1]=1; r[n]=n;
         for(int i=2;i<=n;i++){
            int  t = i;              //记录a[i]往左比他小的最小边界
             while(t>1&&a[i]<=a[t-1])
                t= l[t-1];              //这步相当巧妙,直接实现了跳转,如果a[t-1]不小于a[i]的话,我们可以断定a[t-1]的最左边肯定包含a[i]的最左边.直接跳过中间的点
l[i]=t; } for(int i=n-1;i>=1;i--){ int t = i; while(t<n&&a[i]<=a[t+1]) t= r[t+1]; r[i]=t; } int ans=0; // System.out.println("fd"); for(int i=1;i<=n;i++){ // System.out.println("dff"); ans=Math.max(ans,(r[i]-l[i]+1)*a[i]); } System.out.println(ans); } } // }

 

以上是关于杭电1506 java的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio - 如何从片段中停止 handler.postDelayed?

杭电oj2037——今年暑假不AC(java实现)

杭电oj_2035——人见人爱A^B(java实现)

杭电1002

java学习:杭电1002.大数处理问题

杭电HDOJ--ACM1002(JAVA解题,运用BigInteger)