[bzoj1592][Usaco09Feb]Making the Grade 路面修整_动态规划
2024-09-17 07:17:37
Making the Grade 路面修整 bzoj-1592
题目大意:给你n段路,每段路有一个高度h[i],将h[i]修改成h[i]$\pm\delta$的代价为$\delta$,求将这n段路修成非严格单调的最小代价。
注释:1$\le$n$\le$2000,$1\le A_i\le 10^9$。
想法:我们先考虑单调递增。显然,我们期望所有数都尽量靠近原来的数。a数组是原来的高度数组,b数组是按照a的排序数组
状态:dp[i][j]表示前i段路,且第j段路变成了b[j]的方案数。
转移:f[i][j]=min(f[i-1][k])+abs(a[i]-b[j])(1<=k<=j)。
具体地,这个$n^3$的dp的min我们可以在转移的过程中直接处理出,所以是$n^2$的。
最后,附上丑陋的代码... ...
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cstdlib>
#include <cmath>
using namespace std;
int n,m,mindp[2009][2009],dp[2009][2009],a[2009],b[2009],t[2009],ans;
void original()
{
for (int i=0;i<=n;i++)
for (int j=0;j<=m;j++)
mindp[i][j]=dp[i][j]=0;
}
void dispose()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
{
dp[i][j]=mindp[i-1][j]+abs(a[i]-b[j]);
if (j!=1) mindp[i][j]=min(mindp[i][j-1],dp[i][j]);
else mindp[i][j]=dp[i][j];
}
}
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
t[i]=a[i];
}
sort(t+1,t+1+n);
int now=-1;
for(int i=1;i<=n;i++)
if(now!=t[i]) b[++m]=t[i],now=t[i];
original();
dispose();
ans=mindp[n][m];
for(int i=1;i<=m/2;i++) swap(b[i],b[m-i+1]);
original();
dispose();
ans=min(ans,mindp[n][m]);
printf("%d\n",ans);
return 0;
}
小结:dp总是神奇的qwq
最新文章
- ActiveMQ入门
- PL/SQL Developer记住用户名密码
- csdn 泄露用户密码害人不浅啊。
- RAID-4与模2和
- 一、javaSE总结
- # HTML &;&; CSS 学习笔记
- Codevs 1078 ==Poj 1258 Agri-Net
- iOS开发中GCD在多线程方面的理解
- Java基础知识强化之集合框架笔记66:Map集合面试题之HashMap和Hashtable区别(重要)
- Linux启动遇到的问题
- phpMyAdmin import.php 安全漏洞
- excel数据导入到sqlserver中---------工作笔记
- MVC自我学起之MVCMusic开发中遇到问题:musicstore edit方法出错的原因和解决方法
- <;Win32_12>;程序员求爱的创意程序——升级版^_^
- Initialising Memories
- win下安装Redmine常见错误解决方案
- 关于云Linux部署tomcat服务器(Maven的多模块war包)
- BZOJ_4006_[JLOI2015]管道连接_斯坦纳树
- zookeeper-3.5.4-beta安装
- Tmux的快捷键
热门文章
- PCB 规则引擎之脚本语言JavaScript应用评测
- Rails&#160;mysql数据库连接的小坑
- 洛谷P1387最大正方形(dp,前缀和)
- codevs1026商务旅行
- P3309 [SDOI2014]向量集
- [App Store Connect帮助]一、 App Store Connect 使用入门(1)App Store Connect 工作流程
- Akka源码分析-故障恢复
- url参数为数组
- HTML--使用mailto在网页中链接Email地址
- [ USACO 2018 OPEN ] Out of Sorts (Gold)