ref

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
typedef long long ll;
int n, m, a[2005], b[2005];
ll dp[2005][2005];
ll f(){
memset(dp, 0x3f, sizeof(dp));
dp[0][1] = 0;
for(int i=1; i<=n; i++){
ll val=0x3f3f3f3f3f3f3f3f;
for(int j=1; j<=m; j++){
val = min(val, dp[i-1][j]);
dp[i][j] = val + abs(a[i] - b[j]);
}
}
ll re=0x3f3f3f3f3f3f3f3f;
for(int i=1; i<=m; i++)
re = min(re, dp[n][i]);
return re;
}
int main(){
cin>>n;
for(int i=1; i<=n; i++){
scanf("%d", &a[i]);
b[i] = a[i];
}
sort(b+1, b+1+n);
m = unique(b+1, b+1+n) - (b + 1);
ll val=f();
reverse(a+1, a+1+n);
val = min(val, f());
cout<<val<<endl;
return 0;
}

luogu2893 [USACO08FEB]修路Making the Grade的更多相关文章

  1. [USACO08FEB]修路Making the Grade

    [USACO08FEB]修路Making the Grade比较难的dp,比赛时打的找LIS,然后其他的尽可能靠近,40分.先举个例子61 2 3 1 4 561 2 3 3 4 5第4个1要么改成3 ...

  2. 洛谷 P2893 [USACO08FEB]修路Making the Grade 解题报告

    P2893 [USACO08FEB]修路Making the Grade 题目描述 A straight dirt road connects two fields on FJ's farm, but ...

  3. 【DP】+【贪心】【前缀和】洛谷P2893 [USACO08FEB]修路Making the Grade 题解

        正常的没想到的DP和玄学贪心. 题目描述 A straight dirt road connects two fields on FJ's farm, but it changes eleva ...

  4. [USACO08FEB]修路Making the Grade 动态规划

    对的\(n^3\)的程序调了一个月了,惊了... HSZ学oi\(\Longleftrightarrow\)闭眼学oi 要不是翻旧账还看不见.. 这是有\(n^2\)做法的. 参见LYD的书P244 ...

  5. P2893 [USACO08FEB]修路

    直入主题. 农夫约翰想改造一条路,原来的路的每一段海拔是Ai,修理后是Bi花费|A_i–B_i|.我们要求修好的路是单调不升或者单调不降的.求最小花费. 数据范围:n<=2000,0≤ Ai ≤ ...

  6. 【贪心】bzoj1592: [Usaco2008 Feb]Making the Grade 路面修整

    贪心的经典套路:替换思想:有点抽象 Description FJ打算好好修一下农场中某条凹凸不平的土路.按奶牛们的要求,修好后的路面高度应当单调上升或单调下降,也 就是说,高度上升与高度下降的路段不能 ...

  7. USACO Making the Grade

    洛谷 P2893 [USACO08FEB]修路Making the Grade https://www.luogu.org/problemnew/show/P2893 JDOJ 2566: USACO ...

  8. BZOJ 1592: [Usaco2008 Feb]Making the Grade 路面修整( dp )

    最优的做法最后路面的高度一定是原来某一路面的高度. dp(x, t) = min{ dp(x - 1, k) } + | H[x] - h(t) | ( 1 <= k <= t ) 表示前 ...

  9. 1592: [Usaco2008 Feb]Making the Grade 路面修整

    1592: [Usaco2008 Feb]Making the Grade 路面修整 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 428  Solv ...

随机推荐

  1. 只用jsp实现同样的Servlet功能

    Jsp最终都会转化成java形式的Servlet执行,因此也可以说Jsp的本质就是Servlet,在jsp执行后,会在服务器上(例如tomcat中)生成.java以及.class文件.具体执行过程如下 ...

  2. vue2.0:(八-2)、外卖App弹窗部分sticky footer

    什么是sticky-footer ? 如果页面内容不够长的时候,页脚块粘贴在视窗底部,如果内容足够长时,页脚块会被内容向下推送.那具体要怎么做呢?下面以外卖App为例: 第一种方法:这个自己用过,是好 ...

  3. Myeclipse连接数据库删除数据库(JDBC)

    package com.test.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Pr ...

  4. volley框架下发送和读取cookie

    首先volley本身不支持cookie,但是volley又非常好用(比如封装了网络请求的实现,内部支持并发, 不用我们再额外设计网络管理异步处理,网络请求不应在UI线程等等),那既想使用volley又 ...

  5. 【extjs6学习笔记】0.1 准备:基础概念(02)

    Ext 类 Ext 是一个全局单例的对象,在 Sencha library 中它封装了所有的类和许多实用的方法.许多常用的函数都定义在 Ext 对象里.它还提供了像其他类中一些频繁使用的方法的快速调用 ...

  6. Lucene-如何编写Lucene程序

    Lucene版本:7.1 使用Lucene的关键点 创建文档(Document),添加文件(Field),保存了原始数据信息: 把文档加入IndexWriter: 使用QueryParser.pars ...

  7. django之session配置

    session应用示例 from django.shortcuts import render from django.shortcuts import HttpResponse from djang ...

  8. IT圈网红,抢鲜围观

    即将于2017年10月23-26日,在北京举办的微软技术暨生态大会,是微软中国年度最盛大的科技峰会,是微软技术大会与合作伙伴大会的首次联袂,也是聚集众多IT大咖的技术狂欢派对. 无论你想实现现代化工作 ...

  9. Python3获取大量电影信息:调用API

    实验室这段时间要采集电影的信息,给出了一个很大的数据集,数据集包含了4000多个电影名,需要我写一个爬虫来爬取电影名对应的电影信息. 其实在实际运作中,根本就不需要爬虫,只需要一点简单的Python基 ...

  10. python基础教程总结7——异常

    1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类.常见的Python异常有: 异常 描述 NameError 尝试访问一个没有申明的变量 ZeroDivisionError ...