【POJ3666】【USACO 2008 Feb Gold】 2.Cow Game 动规
来源:互联网 发布:源码管理工具 编辑:程序博客网 时间:2024/05/04 11:34
题意:有若干个数,然后可以花费i的代价让某个数+i或者-i。
现在要求让你把序列排成不升或者不降,问最小代价。
题解:
首先可以证明,最优花费下最后所有的数都可以是现在的某个数:
证:如果两个数调整后在两个数中间,那么可以把两个数都变为其中一个数,而代价显然是等同的。
这个出来后就好做了。
我们可以先离散化一下,然后f[i][j]表示第i个数变为j时1~i这些数保持非严格单调的最小花费
转移时f[i][j]不必n*n枚举,可以维护一个前缀最优(非常水),然后O(1)转移。
然后做一遍非升,一遍非降出解。
代码:
#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 2500#define inf 0x3f3f3f3f3f3f3f3fllusing namespace std;struct LSH{int x,id;bool operator < (const LSH &a)const{return x<a.x;}}lsh[N];int cnt,n,w[N];long long f[N][N];int main(){//freopen("test.in","r",stdin);int i,j,k;scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&lsh[i].x),lsh[i].id=i;sort(lsh+1,lsh+n+1),lsh[0].x=-1;for(i=1;i<=n;i++){if(lsh[i].x!=lsh[i-1].x)lsh[++cnt].x=lsh[i].x;w[lsh[i].id]=cnt;}// 离散化结束,lsh中对应原值//升序for(i=1;i<=n;i++){long long temp=inf;for(j=0;j<=cnt;j++){temp=min(temp,f[i-1][j]);f[i][j]=temp+abs(lsh[w[i]].x-lsh[j].x);}}long long ans1=inf;for(i=0;i<=cnt;i++)ans1=min(ans1,f[n][i]);//降序for(i=1;i<=n;i++){long long temp=inf;for(j=cnt;j>=0;j--){temp=min(temp,f[i-1][j]);f[i][j]=temp+abs(lsh[w[i]].x-lsh[j].x);}}long long ans2=inf;for(i=0;i<=cnt;i++)ans2=min(ans2,f[n][i]);cout<<min(ans1,ans2)<<endl;return 0;}
复制去Google翻译翻译结果
0 0
- 【POJ3666】【USACO 2008 Feb Gold】 2.Cow Game 动规
- bzoj3939 【USACO 2015 FEB GOLD 】cow hopscotch
- BZOJ3939 BSOJ4853 【USACO 2015 FEB GOLD 】cow hopscotch
- 【USACO 2008 Open Gold】 2.Crisis on the Farm 动规、
- BZOJ1578 USACO 2009 Feb Gold 2.Stock Market
- POJ 3269 USACO FEB GOLD newbarn
- [USACO 2014 Feb Silver && Gold] Roadblock
- USACO 2009 Feb Gold 3.Revamping Trails
- USACO 2011 Feb Gold 1.Cowlphabet(dp)
- 【POJ3613】【USACO 2007 Nov Gold】 2.Cow Relays 矩阵乘法?
- 树状动规 USACO Feb 2002 Rebuilding Roads 重建道路
- 【POJ3612】【USACO 2007 Nov Gold】 1.Telephone Wire 动规
- 【USACO】2014 Feb Cow Decathlon 全能奶牛
- 【USACO】2002 Feb Cow Cycling 奶牛赛车
- BZOJ1577 USACO 2009 Feb Gold 1.Fair Shuttle Solution
- BZOJ1579 USACO 2009 Feb Gold 3.Revamping Trails Solution
- USACO 2011 Feb Gold 1.Cowlphabet 奶牛文字
- USACO 2009 Feb Gold 1.Fair Shuttle 贪心
- 27-UI基础字典转模型与xib的使用
- APP切图流程和APP切图命名规范详细完整版
- iOS和安卓手机的APP图标尺寸规范和图标命名规范
- reactos编译成功
- 如何快速找到iOS APP标签栏和工具栏的设计图标
- 【POJ3666】【USACO 2008 Feb Gold】 2.Cow Game 动规
- 【软件资源】vc++6.0软件下载地址。
- 成为明星程序员的10个提示
- 算法从排序开始——插入排序(Insertion Sort)C语言及Java实现
- 【系统】win7远程桌面连接不上,解…
- 【SQL】SQL2012安装文档(WIN7/WIN8…
- 【SQL】SQL远程访问设置(SA登录问…
- 【SQL】SQL游标使用[转自百度]
- 【SQL】使用游标进行不同数据库的…