【笔试】 合唱团

原创 2016年08月28日 18:49:37

有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?
输入描述:
每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每个学生的能力值 ai(-50 <= ai <= 50)。接下来的一行包含两个整数,k 和 d (1 <= k <= 10, 1 <= d <= 50)。

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

输入例子:
3
7 4 7
2 50

输出例子:
49

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool myless(int m,int n)
{
    return m>n;
}
int func(int n)
{
    vector<int>iVec;
    for(int i = 0; i < n;i++)
    {
        int iNum;
        cin>>iNum;
        iVec.push_back(iNum);
    }
    sort(iVec.begin(),iVec.end(),myless);
    ///////////
    int k = 0,d;
    cin>>k>>d;
    int chengji = 1;
    for(int i = 0; i < k;i++)
    {
        //vector<int>::iterator it = iVec.rbegin()+i;
       // chengji *= (*it);
        chengji *= iVec[i];
    }
    return chengji;
}
int main()
{
    int n,k;
    cin>>n;
    cout<<func(n)<<endl;
    system("pause");
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

合唱团(2016网易编程题)

题目: 有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最...
  • hui1140621618
  • hui1140621618
  • 2017年03月23日 10:13
  • 956

动态规划(以合唱团为例)

比较容易理解的动态规划:http://blog.csdn.net/woshioosm/article/details/7438834 关于金子问题的部分选段: 子问题: 国王需要根...
  • HYeeee
  • HYeeee
  • 2017年12月04日 20:34
  • 83

【在线笔试题解题报告系列】网易2017校招内推笔试之编程题【持续更新】

网易今年把内推笔试放在牛客网上办,然后出了一批编程题。 题目在: http://www.nowcoder.com/test/2252286/summary http://www.nowcoder.c...
  • fcxxzux
  • fcxxzux
  • 2016年08月07日 00:29
  • 10472

[华为机试练习题]37.合唱队

N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,T...
  • SunnyYoona
  • SunnyYoona
  • 2015年07月02日 15:57
  • 2718

清晰解题: 网易笔试合唱团

闲言: 一切讲解不清晰的算法博文== 磨炼读者自学能力 本文参考合唱团——2016网易内推编程题题目: 合唱团(网易编程题)有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺...
  • lengxiao1993
  • lengxiao1993
  • 2016年08月25日 03:42
  • 3420

华为OJ 合唱队数 java实现

华为OJ 合唱队数 java实现
  • iNiegang
  • iNiegang
  • 2015年08月15日 21:53
  • 1756

C++ 华为 合唱队

描述 计算最少出列多少位同学,使得剩下的同学排成合唱队形说明:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从...
  • Bingo_12345
  • Bingo_12345
  • 2015年09月09日 22:13
  • 678

合唱团——2016网易内推编程题

题目描述:(题目链接:合唱团) 有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的...
  • JIEJINQUANIL
  • JIEJINQUANIL
  • 2016年08月15日 18:51
  • 1646

网易2017内推笔试1:合唱团 [python]

''' [编程题] 合唱团 时间限制:1秒 空间限制:32768K 有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生, 要求相邻两个学生的位置编号的差不超...
  • qq_34617032
  • qq_34617032
  • 2017年11月15日 08:56
  • 44

合唱队问题的求解——华为OJ题目

一、问题的描述 以下是原题目描述。要求计算最少出列多少位同学,使得剩下的同学排成合唱队形 说明: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。  ...
  • wang_dong001
  • wang_dong001
  • 2016年12月08日 21:08
  • 454
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【笔试】 合唱团
举报原因:
原因补充:

(最多只允许输入30个字)