POJ 3666 Making the Grade (DP滚动数组)
题意:农夫约翰想修一条尽量平缓的路,路的每一段海拔是A[i],修理后是B[i],花费|A[i] – B[i]|,求最小花费。(数据有问题,代码只是单调递增的情况)
#include <stdio.h>
#include <algorithm>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <memory>
#include <iostream>
#define LL long long
using namespace std;
int a[];
int b[];
int dp[][];//滚动数组优化
int main() {
int n;
while(~scanf("%d",&n)) {
for(int i=; i<n; i++) {
scanf("%d",&a[i]);
b[i]=a[i];
}
sort(b,b+n);
for(int i=; i<n; i++) {
dp[][i]=abs(a[]-b[i]);
}
for(int i=; i<n; i++) {
int cur=i&0x1;//奇偶区别
int pre=(i-)&0x1;
int ans=dp[pre][];
for(int j=; j<n; j++) {
ans=min(dp[pre][j],ans);
dp[cur][j]=ans+abs(a[i]-b[j]);//状态转移方程i表示在前i个数的情况下,最后一个是第j小的最小花费
}
}
int N=(n-)&0x1;
// printf("%d\n",dp[N][n-1]);
cout<<*min_element(dp[N],dp[N]+n)<<endl;
}
return ;
}
POJ 3666 Making the Grade (DP滚动数组)的更多相关文章
- poj 3666 Making the Grade(dp)
		
Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...
 - Poj 3666 Making the Grade  (排序+dp)
		
题目链接: Poj 3666 Making the Grade 题目描述: 给出一组数,每个数代表当前位置的地面高度,问把路径修成非递增或者非递减,需要花费的最小代价? 解题思路: 对于修好的路径的每 ...
 - HDU 1024 Max Sum Plus Plus --- dp+滚动数组
		
HDU 1024 题目大意:给定m和n以及n个数,求n个数的m个连续子系列的最大值,要求子序列不想交. 解题思路:<1>动态规划,定义状态dp[i][j]表示序列前j个数的i段子序列的值, ...
 - HDU 5119 Happy Matt Friends (背包DP + 滚动数组)
		
题目链接:HDU 5119 Problem Description Matt has N friends. They are playing a game together. Each of Matt ...
 - USACO 2009 Open Grazing2 /// DP+滚动数组oj26223
		
题目大意: 输入n,s:n头牛 s个栅栏 输入n头牛的初始位置 改变他们的位置,满足 1.第一头与最后一头的距离尽量大 2.相邻两头牛之间的距离尽量满足 d=(s-1)/(n-1),偏差不超过1 3. ...
 - POJ 3666 Making the Grade(数列变成非降序/非升序数组的最小代价,dp)
		
传送门: http://poj.org/problem?id=3666 Making the Grade Time Limit: 1000MS Memory Limit: 65536K Total ...
 - hdu 1513 && 1159 poj  Palindrome (dp,  滚动数组, LCS)
		
题目 以前做过的一道题, 今天又加了一种方法 整理了一下..... 题意:给出一个字符串,问要将这个字符串变成回文串要添加最少几个字符. 方法一: 将该字符串与其反转求一次LCS,然后所求就是n减去 ...
 - poj 3666 Making the Grade(dp离散化)
		
Making the Grade Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7068 Accepted: 3265 ...
 - POJ 3666 Making the Grade (DP)
		
题意:输入N, 然后输入N个数,求最小的改动这些数使之成非严格递增即可,要是非严格递减,反过来再求一下就可以了. 析:并不会做,知道是DP,但就是不会,菜....d[i][j]表示前 i 个数中,最大 ...
 
随机推荐
- 24种设计模式--观察者模式【Observer Pattern】
			
<孙子兵法>有云: “知彼知己,百战不殆:不知彼而知己,一胜一负:不知彼,不知己,每战必殆”,那怎么才能知己知彼呢?知己是很容易的,自己的军队嘛,很容易知道,那怎么知彼呢?安插间谍是很好 ...
 - .net闭包的应用
			
这里体现出闭包的数据共享 , , , , , , , , , }; ; ; values.ToList().ForEach(s => result1 += s); values.ToList() ...
 - 深度优化LNMP之Nginx (转)
			
深度优化LNMP之Nginx Nginx基本安全优化 1.调整参数隐藏Nginx版本号信息 一般来说,软件的漏洞都和版本有关,因此我们应尽量隐藏或清除Web服务队访问的用户显示各类敏感信息(例 ...
 - C#面向对象的学习笔记
			
1.面向对象的3要素: 封装:将不需要显示的代码封装到一个方法中,只对外提供方法名,用户不需关心内部实现. 继承:子类继承父类,公用父类的代码,大大提高了代码的重用,贴近生活也符合人类的编程思想. 多 ...
 - 几个常用方法有效优化ASP.NET的性能
			
一. 数据库访问性能优化 1),数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连 ...
 - demo——06弹性和制作骰子
			
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
 - 解决修改SQL SERVER 默认1433端口 访问出错的问题;
			
1. 如何修改 数据库默认的 1433端口: SQL SERVER 配置管理器中 SQLSERVER 网络配置 xxx数据实例的协议中的 TCP/IP 中 默认端口 都修改为 自己定义的端口 例如 ...
 - html5/css3响应式布局介绍及设计流程
			
html5/css3响应式布局介绍 html5/css3响应式布局介绍及设计流程,利用css3的media query媒体查询功能.移动终端一般都是对css3支持比较好的高级浏览器不需要考虑响应式布局 ...
 - #Leet Code# Best Time to Buy and Sell Stock
			
描述:数组 A,对于 i < j, 找到最大的 A[j] - A[i] 代码: class Solution: # @param prices, a list of integer # @ret ...
 - 内网DMZ外网之间的访问规则
			
当规划一个拥有DMZ的网络时候,我们可以明确各个网络之间的访问关系,可以确定以下六条访问控制策略. 1.内网可以访问外网 内网的用户显然需要自由地访问外网.在这一策略中,防火墙需要进行源地址转换. 2 ...