POJ 3666 Making the Grade (DP滚动数组)
题意:农夫约翰想修一条尽量平缓的路,路的每一段海拔是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滚动数组)相关推荐
- poj 3666 Making the Grade zoj 3512 Financial Fraud 左偏树 or dp
//poj 3666 //分析:只是在2005年集训队论文黄源河提到的题目上略微有一点点变化 1 #include"iostream" 2 #include"cstdio ...
- HDU 1176 免费馅饼 矩阵取数, dp + 滚动数组
http://acm.hdu.edu.cn/showproblem.php?pid=1176 首先可以处理出整张地图的状态. book[T][POS]表示第T秒,在第pos个地方有多少个馅饼. dp[ ...
- Top Secret Task(dp+滚动数组)
传送门: 题目 dp[i][j][k] 表示 考虑到第i个数 计算前j个数的和 进行了k次操作 则有 若不把第i个数放入前j个数中 dp[i][j][k] = dp[i-1][j][k] 若把第i个数 ...
- HDU 5617 Jam's maze dp+滚动数组
题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5617 bc(中文): http://bestcoder.hdu.edu.cn/contes ...
- 【NOIP2015提高组】子串 区间DP+滚动数组优化
题意: 有两个仅包含小写英文字母的字符串 A 和 B. 现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一个新的字符串. 请问 ...
- HDU - 6578 Blank DP + 滚动数组
HDU - 6578 Blank 题意 给你\(\{0,1,2, 3\}\)四个数,分别填入长度为\(n\)的数列中,有\(m\)个限制条件,\(l_{i}, r_{i}, x_{i}\)表示在\([ ...
- [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天可以执行下列操作方案之一: ...
- 【bzoj 1806/CS 1801】矿工配餐 IOI2007(五维DP+滚动数组)
楼下是传送门: http://www.lydsy.com/JudgeOnline/problem.php?id=1806 Description 现有两个煤矿,每个煤矿都雇用一组矿工.采煤工作很辛苦, ...
- 牛客小白月赛58 B(暴力)C(思维)D(dp滚动数组优化)
牛客小白月赛58 感觉没什么意思,这场月赛出题人有点问题. B 题意:给定一定的数据填充顺序和每一个填充层的名称,只有填充满了上一层才可以填充下一层. 但是每一层又属于某一个大层,一个大层中包含了若干 ...
- POJ 3666 Making the Grade 笔记
N座山坡,山坡 i 高Ai.想修成只有上坡或只有下坡的形状.修后山坡 i 高Bi,修建费用是Ai与Bi差的绝对值之和.求最小费用.
最新文章
- 手把手教你定制标准 Spring Boot starter
- Ubuntu 16.04 LTS, 64bit,cuda 8, Caffe环境配置编译和安装
- 前端开发实习生的第一天
- 【论文解读】解读TRPO论文,深度强化学习结合传统优化方法
- 阿里云知位停车:让车主好停、车场好管
- 12.8 线程和信号
- PostgreSQL 简单的查询
- wps多人协作后怎么保存_白酒开瓶后怎么保存?
- 001 基本的环境的安装
- 最新的SAS SID 2023可用至2023年1月SAS 9.4 SID续订更新sas sid 2022服务器通用版server
- matlab中的pzmap的意思,Matlab 学习
- 随机数和随机数种子——学不会找我
- 软考—程序设计语言—有限自动机、正规式、编译程序基础、语法树、解释程序基础
- 如何设计一份令人舒服的PPT,每次看都有新的idea
- su组件在什么窗口,【答疑】草图大师Sketchup组件窗口快捷键是什么呢? - 羽兔网问答...
- 看宗萨蒋扬清者仁波切写的《正见:佛陀的证悟》的书评
- 网易考拉API开发系列:item_get-根据ID取商品详情 API 返回值说明
- signal函数原型解读
- Python 中最简最好的设计模式
- 针对寝室11:30熄灯合理性的调查