题解 | #合唱团#

合唱团

https://www.nowcoder.com/practice/661c49118ca241909add3a11c96408c8

#include <iostream>
#include<vector>
using namespace std;
using i64 = long long;
const int N = 1e3 + 10;

int main() {
    int n, k, d;
    cin >> n ;
    vector<i64> a(n + 1);
    // i64 res =1;
    for (int i = 1; i <= n; i++)cin >> a[i];
    cin>>k>>d;
    vector<vector<i64>> f(n+1,vector<i64>(12,1));
    vector<vector<i64>> g(n+1,vector<i64>(12,1)); 

    // f[1][1] = g[1][1] = a[1];
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= k; j++) {
            for (int l = 1; l <= d; l++) 
            {
                if (a[i] >= 0) {
                    if (i - l >= 0) {
                        f[i][j] = max(f[i][j], f[i-l][j - 1] * a[i]);
                        g[i][j] = min(g[i][j], g[i-l][j - 1] * a[i]);
                    }
                } else if (a[i] < 0) {
                    if (i - l >= 0) {
                        f[i][j] = max(f[i][j], g[i-l][j - 1] * a[i]);
                        g[i][j] = min(g[i][j], f[i-l][j - 1] * a[i]);
                    }
                }

            }
        }
    }

    i64 res = 1;
    for (int i = 1; i <= n; i++) {
        res = max(res, f[i][k]);
    }
    cout << res;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

一天代码十万三:这个学历有中大厂实习也是0面,没办法,斩杀线是这样的
点赞 评论 收藏
分享
08-27 12:02
已编辑
南京外国语学校 网络安全
再来一遍:实则劝各位不要all in华子,不要相信华为hr
点赞 评论 收藏
分享
10-09 17:17
已编辑
门头沟学院 Java
活泼的代码渣渣在泡池...:同学你好,我也是学院本,后天要面这个亚信科技,是实习,请问问题都啥样呀,我项目就做了网上的,这是第一次面试
投递多益网络等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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