题目大意:

给定一个序列,以最小代价将其变成单调不增或单调不减序列,求最小的变动价值;需要用到离散化dp

状态转移方程:

dp[i][j]=abs(j-w[i])+min(dp[i-1][k]);(k<=j)这里的k无需从1遍历到j。

只要在对j进行for循环的时候不断更新一个dp[i-1][j]的最小值mn=min(mn,dp[i-1][j]),

然后对dp[i][j]=abs(j-w[i])+mn即可;

 1 #include<algorithm>
 2 #include<iostream>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<cmath>
 6 using namespace std;
 7 const int N = 550;
 8 const int MAX = 0x3fffffff;
 9 long long dp[N][N];
10 int a[N],b[N],n;
11 int cmp(int x,int y)
12 {
13     if(x>y) return 1;
14     return 0;
15 }
16 long long  solve()
17 {
18     for(int i=1; i<=n; i++)
19     {
20      long long mn = dp[i-1][1];
21        for(int k =1; k<=n; k++)
22       {
23         mn = min(mn,dp[i-1][k]);
24         dp[i][k] = abs(a[i]-b[k])+mn;
25       }
26     }
27       long long ans = dp[n][1];
28       for(int i =1; i<=n; i++)
29       {
30         ans = min(ans,dp[n][i]);
31       }
32       return ans;
33 }
34 int main()
35 {
36     int T;
37     scanf("%d\n",&T);//poj这个地方不是T组数据,需要改动输入
38     while(T--)
39     {
40         scanf("%d",&n);
41         for(int i = 1; i<=n; i++)
42         {
43             scanf("%d",&a[i]);
44             b[i] = a[i];
45         }
46     sort(b+1,b+n+1);
47     long long ans1 = solve();//一次递增序列
48     sort(b+1,b+1+n,cmp);
49     long long ans2 = solve();//一次递减序列求最小值
50     long long ans=min(ans1,ans2);
51     printf("%lld\n",ans);
52     }
53     return 0;
54 }

转载于:https://www.cnblogs.com/lovychen/p/4425058.html

poj 3666 河南省第七届程序设计D题(山区修路)相关推荐

  1. 2016 Bird Cup ICPC7th@ahstu--“波导杯”安徽科技学院第七届程序设计大赛

    "波导杯"安徽科技学院第七届程序设计大赛 原文章网页 Contest - 2016 "Bird Cup" ICPC7th@ahstu Start time:   ...

  2. 蓝桥杯第七届决赛真题大全题解(java版本)

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 >蓝桥杯第七届决赛第一题[(详情(愤怒小鸟))](http://blog.csdn.ne ...

  3. 陕西师范大学第七届程序设计竞赛网络同步赛题解

    心累,昨天一天3个比赛,全部炸掉,这个陕西师范的比赛我真的读不懂题目,只搞出来7题,难受 A,B,F签到题,不讲了,只讲C,D,I,K 链接:https://www.nowcoder.com/acm/ ...

  4. 哈尔滨理工大学第七届程序设计竞赛初赛 题集

    1. 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 这是mengxiang000和Tabri ...

  5. 哈尔滨理工大学第七届程序设计竞赛初赛(低年级组)

    水题就不做讲解了~~~~~: A 蓝廋.香菇 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 ...

  6. 河南省第七届省赛 问题 F: Turing equation 水题

    **题目描述 The fight goes on, whether to store numbers starting with their most significant digit or the ...

  7. 陕西师范大学第七届程序设计竞赛 C题 iko和她的糖

    链接: https://www.nowcoder.com/acm/contest/121/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言26 ...

  8. 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)G - 幼儿园战争...

    题目描述 幼儿园的孩子们正在做游戏,每个人都有自己的帮派,帮派之间打架,然后赢者吞并弱者扩大自己的势力.最开始每个孩子的帮派中只有自己,然后接下来有会有两个人打架,这两个人会集结自己所属的势力开始打架 ...

  9. 哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)题解

    比赛链接:https://www.nowcoder.com/acm/contest/27#question A: 小Z的体型实在是太胖了,每次和小D一起出门都跟不上小D的脚步,这让小Z很气馁,于是小Z ...

  10. 陕西师范大学第七届程序设计竞赛网络同步赛 J 黑猫的小老弟【数论/法拉数列/欧拉函数】...

    链接:https://www.nowcoder.com/acm/contest/121/J 来源:牛客网 题目描述 大家知道,黑猫有很多的迷弟迷妹,当然也有相亲相爱的基友,这其中就有一些二五仔是黑猫的 ...

最新文章

  1. 深度学习几种典型架构
  2. ASP.NET MVC 入门3、Routing
  3. Linux C : TCP/IP 和 网络编程
  4. android_secure写权限,android.permission.WRITE_SECURE_SETTINGS权限报错
  5. 信息学奥赛C++语言: 输出矩形
  6. OpenStack实践系列②认证服务Keystone
  7. MTK 驱动开发(24)---camera模块的制作
  8. centos选择php7 作为默认版本_树莓派下安装Nginx+Php7.3 搭建Web服务器
  9. 类和对象编程(四):拷贝构造函数
  10. matlab 可视化 —— 常用绘图函数
  11. Picturebox实现图片的缩放
  12. vm14卡顿及安装linux黑屏问题
  13. leapftp 3.0.1使用教程,leapftp 3.0.1使用教程图解
  14. Non-local:用于捕获长距离依赖关系
  15. 防火墙命令补充和dmz_远程管理
  16. Edge兼容IE,Edge关闭弹窗阻止
  17. OSChina 周一乱弹 ——月薪三万长的帅的为啥找不到女朋友
  18. 6.2 用迹求特征多项式
  19. 机器学习算法之决策树算法
  20. 3*3*3魔方旋转算法

热门文章

  1. wust2012级软件工程新生经验交流会草稿
  2. TC中编辑程序快捷键
  3. NHibernate初探(五) 多对多关系测试示例
  4. 为什么 我的博客还没文章?
  5. 【Flutter】IOS打包
  6. [数据结构]P1.3 栈 Stack
  7. mysql的常用引擎
  8. mysql-mysqldump命令导出多个数据库结构(实战)
  9. 201521123014《Java程序设计》第1周学习总结
  10. 通天之潜水(洛谷 1759)