区间dp3

题目解析 alt

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int[] a = new int[n];
        int[] b = new int[n];
        for (int i = 0; i <n ; i++) {
            a[i] = input.nextInt();
        }
        for (int i = 0; i <n ; i++) {
            b[i] = input.nextInt();
        }
        int[][] dp = new int[n][n];
        for(int i=0; i<n; i++)
        {
            dp[i][i]=a[i]*b[n-1];//i-i的最优解
        }

        for(int i=n-1;i>=0;i--)
        {
            for(int j=i+1; j<n; j++)
            {
                dp[i][j]=Math.max(a[i]*b[n-(j-i+1)]+dp[i+1][j],a[j]*b[n-(j-i+1)]+dp[i][j-1]);//i--j的最优解为:a拿前一个且b拿第n-(j-i+1)个,或者a拿最后一个,b拿n-(j-i+1),求最大值即可
            }
        }
        System.out.println(dp[0][n-1]);
    }
}
全部评论

相关推荐

机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务