题目描述
有 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

解题参考:http://blog.csdn.net/fcxxzux/article/details/52138964
解题思路及代码:
原理类似于迭代求解函数,考虑k=1作为初始点,来推断k=2时的结果,其中需要注意负负得正。

# f [ i ] [ j ] [ 0 / 1 ]表示,总人数为j,以第i个人为最后一个人,乘积的最大值和最小值。
# 考虑到负负得正,所以需要保留负数中的最小值。
# 通过公式f[i][j]=max(fm[k][j-1]*stu[j],fn[k][j-1]*stu[j]),可以一次遍历得出结果n = int(input())# 与版本2不同,python3中,map函数返回一个map对象,而不是list,需要转换;
# http://www.cnblogs.com/GatsbyNewton/p/4784049.html
array = list(map(int,input().split()))k,d = map(int,input().split())# 初始化三维数组(大小),由内到外
resArray = [[[0] * 2 for j in range(k+1)] for i in range(n)]
result = 0;# i表示最后一个数位于array数组位置下标i处,j表示当前乘积的数字个数,0、1分别记录最大值和最小值
# 遍历个数和位置
for i in range(0,n):# 当乘积个数为1时,结果为当前这个数。resArray[i][1][0],resArray[i][1][1]=array[i],array[i]for j in range(2,k+1):# 考虑间隔dfor m in range(max(i-d,0),i):resArray[i][j][0] = max(resArray[i][j][0],max(resArray[m][j-1][0]*array[i],resArray[m][j-1][1]*array[i]))resArray[i][j][1] = min(resArray[i][j][1],min(resArray[m][j-1][0]*array[i],resArray[m][j-1][1]*array[i]))result = max(result,max(resArray[i][k][0],resArray[i][k][0]))print(result)

合唱团-网易python相关推荐

  1. 网易python笔试题_python 饥饿的小易(网易笔试题)

    本周早些时候,学弟给我发了一道网易的笔试题,饥饿的小易,感觉有点意思-分享给大家 题目描述: 小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃.最开始小易在一个初始位置x_0.对于小易所处的当前 ...

  2. 网易python面试_网易游戏面试经验(一)

    前言 最近一直没有写博客,在忙着准备申请各大公司的实习,现在基本已经定下来了,特将这段时间面试中遇到的问题进行总结和解答,主要包括一些网络.算法.操作系统.python的问题,这些问题并不是以往比较常 ...

  3. 网易python公开课_如何批量获取网易公开课Request Url?

    这个可能跟python关系不大了,从网络请求可以看到,在请求flv之前,有个xml的请求: http://live.ws.126.net/movie/D/K/2_M82ICR1D9_M83C881DK ...

  4. 网易python面试经验_Python程序员应该如何准备面试

    当前Python语言的上升趋势非常明显,随着大数据和人工智能领域的发展,Python语言未来的应用前景还是非常值得期待的.另外,Python语言在Web开发.嵌入式开发和各种后端服务开发中也扮演着重要 ...

  5. 网易python面试_一道神奇的Python面试题,你会吗?

    无意间,看到这么一道Python面试题:以下代码将输出什么? def testFun: temp = [lambda x : i*x for i in range(4)] return temp fo ...

  6. 网易python笔试题_2017秋季网易校园招聘编程题和个人解答(python)

    做菜 题干 大牛喜欢做菜,每种菜需要不同的材料,求需要准备多少种材料. 每一行是一个菜谱,<50字节,输入行数不确定,不超过50行. 难点:如何获取输入结束的标志 输入示例 apple bana ...

  7. 星际穿越-网易python(简单数学公式)

    题目描述 航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程,科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x2 程度的损耗,如 ...

  8. python游戏开发工程师证书_【网易游戏游戏开发工程师面试】网易python开发 游戏公共支持-看准网...

    10.21终面已参加,希望能顺利通过终面拿到offer-❤一共三轮,电话面试+笔试+视频面试,视频面试3V110月19日投的新媒体运营的简历,HR说因为是周末,等工作日再联系我,在周一下午三点我接到了 ...

  9. 网易python面试经验_【网易游戏Python面试】第一轮hr电话面试-看准网

    10.21终面已参加,希望能顺利通过终面拿到offer-❤一共三轮,电话面试+笔试+视频面试,视频面试3V110月19日投的新媒体运营的简历,HR说因为是周末,等工作日再联系我,在周一下午三点我接到了 ...

最新文章

  1. Android Gradle 构建工具(Android Gradle Build Tools)是什么?
  2. entity framework .core常用技巧
  3. Centos6.3修改源码遇到无法yum安装的问题
  4. Rsync+sersync同步配置
  5. [总结] 网络流经典建模
  6. java中final是修饰符么_Java final修饰符详解
  7. python 列表推导式csv_Python 列表推导式
  8. 编译libpng和zlib
  9. Java调用第三方接口(http总结)
  10. tp 数据库查询排序_ThinkPHP对查询的数据随机排序
  11. 常见电平信号、RS232与RS485相关知识总结
  12. C语言编译警告和报错整理-持续更新
  13. origin绘图软件安装包及入门使用
  14. 网络计算机不能打印,如果共享打印机后局域网计算机无法打印,该怎么办?
  15. 真人口播视频号:流量不愁,变现才是重中之重丨国仁网络
  16. 如何快速开发一个自己的微信小程序
  17. 抖音将来会做电商小程序
  18. Matlab实现图像简单的几何校正
  19. 比赛题目训练系列17 (2020-2021 ACM-ICPC Brazil Subregional Programming Contest)
  20. 基于微信小程序云开(统计学生信息并导出excel)

热门文章

  1. 线上线下联动,小程序电商…今年双11“前戏”跟去年有啥不同?
  2. Datawhale pandas学习任务二:pandas基础
  3. Microsoft 预览体验计划 简介
  4. 个人开源项目如何上传maven中央仓库
  5. 【SIKI学院】愤怒的小鸟创建过程-1
  6. C++万年历操作系统 (本万年历系统的操作计算的是 1901年到2049年 的万年历系统)万年历的实现
  7. 基于OpenCV的驾驶员疲劳鉴别系统
  8. 深度学习:综述:医疗影像数据+CV数据集
  9. IO基础 File String
  10. 〖产品思维训练白宝书 - 核心竞争力篇⑩〗- 产品经理核心竞争力解读之普通人如何训练提升规划能力