牛客网+合唱团
发布时间
阅读量:
阅读量
题目描述
现有 n 名学生排成一行,每位学生对应一个能力数值。牛牛希望按照排列顺序从中挑选 k 名学生,且所选学生之间的位置编号差值不得大于 d,目标是使所选 k 名学生的能力值相乘的结果达到最大值,试问该最大乘积是多少?
输入描述:
i
输出描述:
小标题
小标题
动态规划中,Maxability[i][j]用于表示以第i个元素作为结尾,选取j个数时所能获得的最大乘积。在计算Maxability[i][j+1]时,需要从Maxability[i-d][j] * a[i]到Maxability[i-1][j] * a[i]这一范围内选择最大值。然而,由于序列中可能包含负数,因此还需额外定义一个用于记录最小乘积的参数。
代码:
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
int main() {
long long int Maxability[60][20],Minability[60][20],maa;
int ability[6
全部评论 (0)
还没有任何评论哟~
