首页 > 试题广场 >

合唱团

[编程题]合唱团
  • 热度指数:105758 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?

输入描述:
每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每个学生的能力值 ai(-50 <= ai <= 50)。接下来的一行包含两个整数,k 和 d (1 <= k <= 10, 1 <= d <= 50)。


输出描述:
输出一行表示最大的乘积。
示例1

输入

3
7 4 7
2 50

输出

49
头像 Surtr1
发表于 2024-08-14 19:17:58
#include <iostream> #include<vector> using namespace std; using i64 = long long; const int N = 1e3 + 10; int main() { int n, k, d; 展开全文
头像 牛客937932357号
发表于 2021-07-14 16:31:18
HashMap为何改为尾插法 import java.util.;import java.lang.;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanne 展开全文
头像 J-Young
发表于 2021-07-03 18:37:24
#include <iostream> #include <limits.h> using namespace std; int main() { int n,k,d; int V[51]; long long results_max[51][11] = {0}; 展开全文
头像 时光拾缀思念
发表于 2024-10-21 00:51:47
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { ll n; cin >> n; vector<ll>arr(n);//存储每个数 for ( 展开全文
头像 城城城<
发表于 2023-05-06 12:05:11
//逻辑感觉还是有漏洞,但是样例过了 #include<iostream> #include<vector> using namespace std; int s = 0; void dp(const vector<long long>& a,vector< 展开全文
头像 Co1aMan
发表于 2023-07-21 10:44:37
#include <iostream> #include <vector> using namespace std; struct XPower { XPower() { } //正数 long long n = 0; //负 展开全文
头像 Muuuuuuu
发表于 2022-06-13 13:33:17
动态规划 思路: 考虑以第i(i < n)个元素结尾作为选择的第k(k < K)个值 以前d个元素中最大的k-1个元素的乘积来更新当前元素的最大乘积 由于(-50 <= ai <= 50),存在负数,因此当第i个值为负数时,考虑前d个元素的最小值作为更新依据 因此状态转移方 展开全文

问题信息

难度:
186条回答 72799浏览

热门推荐

通过挑战的用户

查看代码
合唱团