题意:农夫约翰想修一条尽量平缓的路,路的每一段海拔是A[i],修理后是B[i],花费|A[i] – B[i]|,求最小花费。(数据有问题,代码只是单调递增的情况)

 1 #include <stdio.h>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdlib>
 5 #include <cmath>
 6 #include <memory>
 7 #include <iostream>
 8 #define LL long long
 9 using namespace std;
10 int a[2010];
11 int b[2010];
12 int dp[2][2010];//滚动数组优化
13 int main() {
14     int n;
15     while(~scanf("%d",&n)) {
16         for(int i=0; i<n; i++) {
17             scanf("%d",&a[i]);
18             b[i]=a[i];
19         }
20         sort(b,b+n);
21         for(int i=0; i<n; i++) {
22             dp[0][i]=abs(a[0]-b[i]);
23         }
24         for(int i=0; i<n; i++) {
25             int cur=i&0x1;//奇偶区别
26             int pre=(i-1)&0x1;
27             int ans=dp[pre][0];
28             for(int j=0; j<n; j++) {
29                 ans=min(dp[pre][j],ans);
30                 dp[cur][j]=ans+abs(a[i]-b[j]);//状态转移方程i表示在前i个数的情况下,最后一个是第j小的最小花费
31             }
32         }
33         int N=(n-1)&0x1;
34         // printf("%d\n",dp[N][n-1]);
35         cout<<*min_element(dp[N],dp[N]+n)<<endl;
36     }
37     return 0;
38 }

View Code

转载于:https://www.cnblogs.com/ITUPC/p/5308864.html

POJ 3666 Making the Grade (DP滚动数组)相关推荐

  1. poj 3666 Making the Grade zoj 3512 Financial Fraud 左偏树 or dp

    //poj 3666 //分析:只是在2005年集训队论文黄源河提到的题目上略微有一点点变化 1 #include"iostream" 2 #include"cstdio ...

  2. HDU 1176 免费馅饼 矩阵取数, dp + 滚动数组

    http://acm.hdu.edu.cn/showproblem.php?pid=1176 首先可以处理出整张地图的状态. book[T][POS]表示第T秒,在第pos个地方有多少个馅饼. dp[ ...

  3. Top Secret Task(dp+滚动数组)

    传送门: 题目 dp[i][j][k] 表示 考虑到第i个数 计算前j个数的和 进行了k次操作 则有 若不把第i个数放入前j个数中 dp[i][j][k] = dp[i-1][j][k] 若把第i个数 ...

  4. HDU 5617 Jam's maze dp+滚动数组

    题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5617 bc(中文): http://bestcoder.hdu.edu.cn/contes ...

  5. 【NOIP2015提高组】子串 区间DP+滚动数组优化

    题意: 有两个仅包含小写英文字母的字符串 A 和 B. 现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一个新的字符串. 请问 ...

  6. HDU - 6578 Blank DP + 滚动数组

    HDU - 6578 Blank 题意 给你\(\{0,1,2, 3\}\)四个数,分别填入长度为\(n\)的数列中,有\(m\)个限制条件,\(l_{i}, r_{i}, x_{i}\)表示在\([ ...

  7. [QLU Regular Contest 003] G.Youmu with greedy money problem //dp+滚动数组

    题目链接 题意: 给一个初始纯度值 m m m,一共度过 n n n天,给出序列 a [ i ] a[i] a[i]和 b [ i ] b[i] b[i],第 i i i天可以执行下列操作方案之一: ...

  8. 【bzoj 1806/CS 1801】矿工配餐 IOI2007(五维DP+滚动数组)

    楼下是传送门: http://www.lydsy.com/JudgeOnline/problem.php?id=1806 Description 现有两个煤矿,每个煤矿都雇用一组矿工.采煤工作很辛苦, ...

  9. 牛客小白月赛58 B(暴力)C(思维)D(dp滚动数组优化)

    牛客小白月赛58 感觉没什么意思,这场月赛出题人有点问题. B 题意:给定一定的数据填充顺序和每一个填充层的名称,只有填充满了上一层才可以填充下一层. 但是每一层又属于某一个大层,一个大层中包含了若干 ...

  10. POJ 3666 Making the Grade 笔记

    N座山坡,山坡 i 高Ai.想修成只有上坡或只有下坡的形状.修后山坡 i 高Bi,修建费用是Ai与Bi差的绝对值之和.求最小费用.  

最新文章

  1. 手把手教你定制标准 Spring Boot starter
  2. Ubuntu 16.04 LTS, 64bit,cuda 8, Caffe环境配置编译和安装
  3. 前端开发实习生的第一天
  4. 【论文解读】解读TRPO论文,深度强化学习结合传统优化方法
  5. 阿里云知位停车:让车主好停、车场好管
  6. 12.8 线程和信号
  7. PostgreSQL 简单的查询
  8. wps多人协作后怎么保存_白酒开瓶后怎么保存?
  9. 001 基本的环境的安装
  10. 最新的SAS SID 2023可用至2023年1月SAS 9.4 SID续订更新sas sid 2022服务器通用版server
  11. matlab中的pzmap的意思,Matlab 学习
  12. 随机数和随机数种子——学不会找我
  13. 软考—程序设计语言—有限自动机、正规式、编译程序基础、语法树、解释程序基础
  14. 如何设计一份令人舒服的PPT,每次看都有新的idea
  15. su组件在什么窗口,【答疑】草图大师Sketchup组件窗口快捷键是什么呢? - 羽兔网问答...
  16. 看宗萨蒋扬清者仁波切写的《正见:佛陀的证悟》的书评
  17. 网易考拉API开发系列:item_get-根据ID取商品详情 API 返回值说明
  18. signal函数原型解读
  19. Python 中最简最好的设计模式
  20. 针对寝室11:30熄灯合理性的调查

热门文章

  1. yum安装wget失败,替换yum源为阿里yum源并重亲安装
  2. JVM学习01—下载编译openjdk源码并进行调试
  3. 三进制计算机_要做一个编程界优秀的攀登者,首先要认真计算机中的0和1
  4. [渝粤教育] 广东-国家-开放大学 21秋期末考试互联网金融10139k2
  5. 【渝粤教育】广东开放大学 外国文学专题 形成性考核 (55)
  6. 【Python实例第13讲】识别手写数字
  7. CGAL中Polyhedron_3中与半边结构有关的具体使用
  8. 推荐系统笔记二、矩阵分解协同过滤
  9. 淺談auto_ptr
  10. 20届美团提前批面经