'''
[编程题] 合唱
时间限制:2秒
空间限制:131072K
小Q和牛博士合唱一首歌曲,这首歌曲由n个音调组成,每个音调由一个正整数表示。
对于每个音调要么由小Q演唱要么由牛博士演唱,对于一系列音调演唱的难度等于所有相邻音调变化幅度之和, 
例如一个音调序列是8, 8, 13, 12, 那么它的难度等于|8 - 8| + |13 - 8| + |12 - 13| = 6(其中||表示绝对值)。
现在要对把这n个音调分配给小Q或牛博士,让他们演唱的难度之和最小,请你算算最小的难度和是多少。
如样例所示: 小Q选择演唱{5, 6}难度为1, 牛博士选择演唱{1, 2, 1}难度为2,难度之和为3,这一个是最小难度和的方案了。 
输入描述:
输入包括两行,第一行一个正整数n(1 ≤ n ≤ 2000) 第二行n个整数v[i](1 ≤ v[i] ≤ 10^6), 表示每个音调。

输出描述:
输出一个整数,表示小Q和牛博士演唱最小的难度和是多少。

输入例子1:
5
1 5 6 2 1

输出例子1:
3
'''

'''
解题思路:动态规划
  用字典d{[j,i]=xxx},其中j=-1,0,1,....,i-1,即d{[-1,i]=xxx,[0,i]=xxx,……,[i-1,i]=xxx}
  来表示在前i个音符中,一个人最后一次唱是唱j音符,剩下j+1到i的音符都由另一个人唱的难度和,
  若j=-1,则表示一个人唱完所有音符
  那么这个问题就可以利用动态更新字典d来解决
  在更新字典时候,分两种情况更新:
    1、唱最后一个音符时换人
    2、唱最后一个音符时不换人
'''

'''
代码运行结果:
答案正确:恭喜!您提交的程序通过了所有的测试用例
'''

num = int(input())
tones = [i for i in map(int, input().split())]def _min(n, v):d = {(-1, 0): 0}for i in range(1, n):_d = {}for j in range(-1, i-1):_d[(j, i)] = d[(j, i-1)] + abs(v[i] - v[i-1])_d[i-1, i] = min([d[(k, i-1)] + abs(v[i]-v[k]) for k in range(i-1)] + [d[(-1, i-1)]])del dd = _dreturn min([d[i, n-1] for i in range(-1, n-1)])print(_min(num, tones))

网易2018校园招聘:合唱 [python]相关推荐

  1. 数据分析真题日刷 | 网易2018校园招聘数据分析工程师笔试卷

    七月第一天,希望大家下半年都能「翻身」! 今日真题 网易2018校园招聘数据分析工程师笔试卷(来源:牛客网) 题型 客观题:单选20道:主观题:问答3道 完成时间 120分钟 牛客网评估难度系数 四颗 ...

  2. 网易2018校园招聘:重排数列 [python]

    ''' [编程题] 重排数列 时间限制:1秒 空间限制:100768K 小易有一个长度为N的正整数数列A = {A[1], A[2], A[3]..., A[N]}. 牛博士给小易出了一个难题: 对数 ...

  3. 网易2018校园招聘:相反数 [python]

    ''' [编程题] 相反数 时间限制:1秒 空间限制:32768K 为了得到一个数的"相反数",我们将这个数的数字顺序颠倒,然后再加上原先的数得到"相反数". ...

  4. 网易2018校园招聘:射击游戏 [python]

    ''' [编程题] 射击游戏 时间限制:1秒 空间限制:32768K 小易正在玩一款新出的射击游戏,这个射击游戏在一个二维平面进行,小易在坐标原点(0,0),平面上有n只怪物, 每个怪物有所在的坐标( ...

  5. 网易2018校园招聘:魔法币 [python]

    ''' [编程题] 魔法币 时间限制:1秒 空间限制:32768K 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有, 但是小易有两台魔法机器可以通过投入x(x ...

  6. 网易2018校园招聘:游历魔法王国 [python]

    ''' [编程题] 游历魔法王国 时间限制:1秒 空间限制:32768K 魔法王国一共有n个城市,编号为0~n-1号,n个城市之间的道路连接起来恰好构成一棵树. 小易现在在0号城市,每次行动小易会从当 ...

  7. 网易2018校园招聘:字符串碎片 [python]

    ''' [编程题] 字符串碎片 时间限制:1秒 空间限制:32768K 一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的. 例如,"aaabbaaac"是由下面碎片组 ...

  8. 【笔试题目整理】 网易2018校园招聘数据分析师笔试卷

    最近在准备数据分析岗位的笔试,整理了牛客网上的一些试题与答案方便查看. 试卷信息: 客观题:单选20道 主观题:问答1道,编程2道 完成时间: 120分钟 难度系数: 三颗星 总分: 100分 注:省 ...

  9. 网易2018校园招聘编程题真题集合

    1/8 [编程题]魔法币 #include<bits/stdc++.h> using namespace std; #define clr(a) memset(a, 0, sizeof(a ...

最新文章

  1. GDB attach 用法
  2. 返乡置业?多数人将掉入陷阱
  3. kvm上添加万兆网卡_某2节点万兆网卡直连vSAN延伸群集故障修复
  4. JavaScript学习(三十三)—事件对象常用的属性和方法
  5. 迈特斯机器人_WIE-R红外热像视频内窥镜
  6. gitbook 插件 图片查看
  7. java-序列化以及反序列化
  8. 幼儿-综合素质【2】
  9. SpringSecurity实战(二)-基于数据库认证授权
  10. matlab 绘制圆光栅,火爆抖音的圆点光栅画怎么做的?
  11. python运维都做些什么_系统运维是做什么的(python在实际工作中的应用)
  12. 交住房公积金的好处及作用
  13. 20175208 实验二 《Java面向对象程序设计》实验报告
  14. 联想开机启动项按哪个_联想重装系统按哪个键|联想电脑重装系统按什么键
  15. 神经网络控制与matlab仿真,matlab神经网络拟合预测
  16. 软考系统集成项目管理工程师视频教程(下)-乔俊峰-专题视频课程
  17. SQL Server如何创建临时表并插入数据
  18. Python获取Windows管理员权限
  19. 初识Odoo的辅助核算
  20. 华为设备配置射频调优

热门文章

  1. 二分查找板子(check()函数)
  2. 计算机三级知识点总结
  3. 现代程序员 VS. 古典程序员,你属于哪一类?
  4. 早上喝水较健康 喝法有学问!
  5. 一位老兄看 深圳西安北京上海 大众收入与消费
  6. 猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了1个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天想再吃时,就只剩一个
  7. 漂亮大气的html导航页面,非常大气漂亮的CSS导航栏
  8. DES加解密算法原理详解与实现
  9. vim滚动屏幕快捷键汇总
  10. 淘宝滑块的解决方法和api接口