给定两个长度为 n 的整数列 A 和 B ,每次你可以从 A 数列的左端或右端取走一个数。假设第 i 次取走的数为 ,则第i次取走的数的价值 ,现在希望你求出 的最大值。 数据范围: ,

区块链毕设网qklbishe.com为您提供问题的解答

给定两个长度为 n 的整数列 A 和 B ,每次你可以从 A 数列的左端或右端取走一个数。假设第 i 次取走的数为 给定两个长度为 n 的整数列 A 和 B ,每次你可以从 A 数列的左端或右端取走一个数。假设第 i 次取走的数为 ,则第i次取走的数的价值  ,现在希望你求出 的最大值。          数据范围:  ,,则第i次取走的数的价值 给定两个长度为 n 的整数列 A 和 B ,每次你可以从 A 数列的左端或右端取走一个数。假设第 i 次取走的数为 ,则第i次取走的数的价值  ,现在希望你求出 的最大值。          数据范围:  , ,现在希望你求出 给定两个长度为 n 的整数列 A 和 B ,每次你可以从 A 数列的左端或右端取走一个数。假设第 i 次取走的数为 ,则第i次取走的数的价值  ,现在希望你求出 的最大值。          数据范围:  ,的最大值。
数据范围: 给定两个长度为 n 的整数列 A 和 B ,每次你可以从 A 数列的左端或右端取走一个数。假设第 i 次取走的数为 ,则第i次取走的数的价值  ,现在希望你求出 的最大值。          数据范围:  , , 给定两个长度为 n 的整数列 A 和 B ,每次你可以从 A 数列的左端或右端取走一个数。假设第 i 次取走的数为 ,则第i次取走的数的价值  ,现在希望你求出 的最大值。          数据范围:  ,

#include<bits/stdc++.h>
using namespace std;
intmain(){
    intn;
    cin>>n;
    vector<int> a(n+1),b(n+1);
    for(inti =1; i <= n; ++i) cin>>a[i];
    for(inti =1; i <= n; ++i) cin>>b[i];
    vector<vector<int>> dp(n+1, vector<int>(n+1));
    for(intlen =1; len <= n; ++len){
        for(intl =0; l <= len; ++l){
            intr = len – l;
            if(l >0) dp[l][r] = dp[l-1][r] + a[l] * b[len];
            if(r >0) dp[l][r] = max(dp[l][r], dp[l][r-1] + a[n-r +1] * b[len]);
        }
    }
    intmx =0;
    for(intl =0; l <= n; ++l){
        mx = max(mx, dp[l][n-l]);
    }
    cout<<mx<<endl;
    return0;
}

51:48

以上就是关于问题给定两个长度为 n 的整数列 A 和 B ,每次你可以从 A 数列的左端或右端取走一个数。假设第 i 次取走的数为 ,则第i次取走的数的价值 ,现在希望你求出 的最大值。
数据范围: ,的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 给定两个长度为 n 的整数列 A 和 B ,每次你可以从 A 数列的左端或右端取走一个数。假设第 i 次取走的数为 ,则第i次取走的数的价值 ,现在希望你求出 的最大值。 数据范围: ,