网易2018校招 合唱 DP
时间限制:2秒
空间限制:131072K
对于每个音调要么由小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
#include <iostream>
#include <string>
#include <cstdio>
#include <utility>
#include <thread>
#include <fstream>
#include <chrono>
#include <iterator>
#include <functional>
#include <vector>
#include <sstream>
#include <algorithm>
#include <atomic>
#include <deque>
#include <stack>
using namespace std;
typedef long long LL;
const int MAXN = ;
#define INF 0x3f3f3f3f
/*
dp[i][j] 表示
第一组取到的最后一个人是a[i]
第二组取到的最后一个人是a[j]
由一组取完所有显然不是最优解
下一个位置max(i,j)+1 取之前有两种转移情况
反推(正推的话初始情况不好处理)
*/
int n;
int dp[MAXN][MAXN];
int val[MAXN];
int main()
{
ios::sync_with_stdio();
cin >> n;
for (int i = ; i <= n; i++)
cin >> val[i];
for (int i = n; i >= ; i--)
{
for (int j = n; j >= ; j--)
{
int p = max(i, j) + ;
dp[i][j] = INF;
dp[i][j] = min(dp[i][j], dp[i][p] + (j == ? : abs(val[p - ] - val[j - ])));
dp[i][j] = min(dp[i][j], dp[p][j] + (i == ? : abs(val[p - ] - val[i - ])));
}
}
cout << dp[][] << endl;
}
网易2018校招 合唱 DP的更多相关文章
- 网易2018校招内推编程题-堆棋子-C++实现
		链接:https://www.nowcoder.com/questionTerminal/27f3672f17f94a289f3de86b69f8a25b来源:牛客网 [编程题]堆棋子 热度指数:14 ... 
- [BZOJ5250][九省联考2018]秘密袭击(DP)
		5250: [2018多省省队联测]秘密袭击 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 3 Solved: 0[Submit][Status][D ... 
- 最新 网易java校招面经 (含整理过的面试题大全)
		从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易.京东.去哪儿等10家互联网公司的校招Offer,因为某些自身原因最终选择了网易.6.7月主要是做系统复习.项目复盘.LeetCode与牛客刷题 ... 
- HDU 2018 Cow Story DP
		Basic DP Problem URL:https://vjudge.net/problem/HDU-2018 Describe: There is a cow that gives birth t ... 
- 网易2019校招内推编程题-瞌睡-C++实现
		[编程题] 瞌睡 时间限制:1秒 空间限制:262144K 小易觉得高数课太无聊了,决定睡觉.不过他对课上的一些内容挺感兴趣,所以希望你在老师讲到有趣的部分的时候叫醒他一下.你知道了小易对一堂课每分钟 ... 
- 网易2019校招内推编程题-俄罗斯方块-C++实现
		[编程题] 俄罗斯方块 时间限制:1秒 空间限制:262144K 小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块.因为它比较古老,所以规则和一般的俄罗斯方块不同.荧幕上一共有 n 列,每次都会有 ... 
- 网易2018.03.27算法岗,三道编程题100%样例AC题解
		博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/8660814.html特别不喜欢那些随便转载别人的原创文章又不给 ... 
- 网易2019校招C++研发工程师笔试编程题
		丰收? (忘了题目了QAQ) 题目描述: 又到了丰收的季节,恰逢小易去牛牛的果园里游玩. 牛午常说他对整个果园的每个地方都了如指掌,小易不太相信, 所以他想考考牛牛. 在果园里有N堆苹果,每堆苹果的数 ... 
- 拼多多2018校招编程题汇总 Python实现
		题目原址 列表补全 在商城的某个位置有一个商品列表,该列表是由L1.L2两个子列表拼接而成.当用户浏览并翻页时,需要从列表L1.L2中获取商品进行展示.展示规则如下: 用户可以进行多次翻页,用offs ... 
随机推荐
- div 弹出 居中
			function show_tc_conv(){var x=jq13(window).width()/2;var y=jq13(window).height()/2; var div_w=jq13(& ... 
- IO流的原理和概念
			在程序中如何读写文件?不同的编程语言有不同的方式,而 JAVA 则提出了“流”的概念,通过“流”来读写文件 什么是流: 流(Stream)是指一连串的数据(字符或字节),是以先进先出的方式发送信息的通 ... 
- avd manager或sdk manager无法打开
			最近开始搞安卓,使用AS启动项目时老是报各种错误,而网上这方面的资料很多都解决不了.只能边实验边做. 定位到avd manager或sdk manager无法打开,网上找了很多资料,都不能解决,知道看 ... 
- R in action读书笔记(2)-第五章:高级数据管理(下)
			5.4 控制流  语句(statement)是一条单独的R语句或一组复合语句(包含在花括号{ } 中的一组R语 句,使用分号分隔):  条件(cond)是一条最终被解析为真(TRUE)或假(FAL ... 
- VUE 入坑系列 一 双向绑定
			html代码 <div id="app"> <p>{{message}}</p> <span>message1</span&g ... 
- 对象输入输出流ObjectInputStream、ObjectOutputStream(对象序列化与反序列化)
			对象的输入输出流 : 主要的作用是用于写入对象信息与读取对象信息. 对象信息一旦写到文件上那么对象的信息就可以做到持久化了 对象的输出流: ObjectOutputStream 对象的输入流: Ob ... 
- 【转】用jquery编写动态的返回顶部特效
			jquery代码: function gotoTop(min_height){ //预定义返回顶部的html代码,它的css样式默认为不显示 var gotoTop_html = '<div i ... 
- netstat -a 显示出你的计算机当前所开放的所有端口
			netstat -s -e 比较详细的显示你的网络资料,包括TCP.UDP.ICMP 和 IP的统计等 
- Vue beaforeCreate时获取data中的数据
			异步获取即:通过 $this.$nextTick或者settimeout,这连dom都可以拿出来 beforeCreate() { this.$nextTick(function() { con ... 
- jekyll 将纯文本转化为静态网站和博客 静态网站生成器
			jekyll 将纯文本转化为静态网站和博客 静态网站生成器 这个貌似对windows 支持不是很好~ 但是有支持,官方说不建议使用 
