思路:

离散化+dp。

实现:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 using namespace std;
 5
 6 const int INF = 0x3f3f3f3f;
 7
 8 int a[2005], b[2005], dp[2005][2005], n;
 9
10 int solve()
11 {
12     for (int i = n - 1; i >= 0; i--)
13     {
14         dp[i][n - 1] = min(INF, dp[i + 1][n - 1]) + abs(a[i] - b[n - 1]);
15         for (int j = n - 2; j >= 0; j--)
16         {
17             dp[i][j] = min(INF, dp[i][j + 1] - abs(a[i] - b[j + 1]));
18             dp[i][j] = min(dp[i][j], dp[i + 1][j]);
19             dp[i][j] += abs(a[i] - b[j]);
20         }
21     }
22     int minn = INF;
23     for (int i = 0; i < n; i++)
24     {
25         minn = min(minn, dp[0][i]);
26     }
27     return minn;
28 }
29 int main()
30 {
31     cin >> n;
32     for (int i = 0; i < n; i++)
33     {
34         scanf("%d", &a[i]);
35         b[i] = a[i];
36     }
37     int minn = INF;
38     sort(b, b + n);
39     minn = solve();
40     cout << minn << endl;
41     return 0;
42 }

总结:

1.初步学会了离散化技巧。

2.初步学会了递推优化,对完全背包的理解更深入了。

转载于:https://www.cnblogs.com/wangyiming/p/6575781.html

poj3666 Making the Grade相关推荐

  1. POJ3666 Making the Grade(DP)

    题意:给定长度为n的序列a,构造长度为n的序列b,满足b单调:最小化 思路:在满足S最小化的情况下,一定存在一种构造序列B的方案,使得B中的数值都在A中出现过:dp[i][j]表示完成前i个数的构造, ...

  2. *POJ3666.Making the Grade(DP+离散化)

    题目链接:http://poj.org/problem?id=3666 题意:求将一个序列调整成纯单调(可以相等)的序列所需要的最小代价 解题思路: 分两种情况讨论: ①不减序列:dp[i][j]表示 ...

  3. kuangbin专题十二 基础DP

    kuangbin专题十二 基础DP A - HDU1024 Max Sum Plus Plus B - HDU1029 Ignatius and the Princess IV C - HDU1069 ...

  4. OI每周刷题记录——lrllrl

    看这标题就知道我是模仿的hzwer大佬,远程%%% 大佬的OI经历让蒟蒻我深受感触,为了晚一些AFO本蒟蒻也得加油了 从高二上期第一周开始计数,每个星期天更一次,一直更到我AFO 如果这是我此生最后一 ...

  5. POJ3666:Making the Grade——题解

    http://poj.org/problem?id=3666 题目大意:给n个数,每次操作可使一个数+1或-1,求最小操作数使得序列不下降或不上升. ---------------------- 思路 ...

  6. 【HDU】1084 What Is Your Grade? (结构体 sort)

    http://acm.hdu.edu.cn/showproblem.php?pid=1084 题目的关键: 1.Note, only 1 student will get the score 95 w ...

  7. BZOJ 1592. Making the Grade(思维,数据结构优化DP,以及三个拓展问题)[Usaco2008 Feb]【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x 目录 BZOJ 1592. Making the Grade 拓展问题一 拓展问 ...

  8. GRADE:联合学习演化节点和社区表示的概率生成模型

    作者 | 李梓盟 审稿 | 董靖鑫 今天给大家介绍加拿大蒙特利尔大学的著名学者唐建等人发表的一篇文章.作者在文章中针对现有的图动力学建模方法不能明确地捕捉到时间上的社区动态这一问题,提出了通过在轨迹上 ...

  9. mysql中grade字段降序排列_mysql高级查询

    [聚合函数] 统计记录的条数 select count(*) from 表名; 求某个字段所有值的总和 select sum(字段名) from 表名; 求某个字段所有值的平均值 select avg ...

最新文章

  1. 外星人台式电脑_戴尔外星人Alienware m17笔记本19款真机评测
  2. ASP.NET MVC 音乐商店 - 1 创建项目
  3. 使用nvl就不能groupby了吗_宝妈月子期间真的不能吃酱油、醋、葱姜蒜吗?金牌月嫂教你月子餐调味料使用大全!...
  4. Spring AOP原理及拦截器
  5. 表设计避免使用保留字
  6. Python自动化运维之15、网络编程之socket、socketserver、select、twisted
  7. 图文结合,白话Go的垃圾回收原理
  8. 9.1.4 前端 - HTML body标签 - 标题,段落,分割线,换行,特殊符号,列表,超链接,图片,div/span,表格,表单,input标签,多行文本,单选/多选,下拉,按钮...
  9. 电脑键盘各按键的作用及常用的快捷键总结
  10. linux系统支持网银吗,我彻底方了!Linux下竟然也能使用网银?(图)
  11. 利用数据泵导入导出dmp
  12. stm32 CAN通信 TJA1040
  13. 热乎乎的蚂蚁金服面经分享,offer已到手建议收藏(Java岗、附答案解析)
  14. 【量化交易基础】金融相关基础知识
  15. 曙光服务器怎么外接显示器,iPad平板外接显示器教程 | iPad平板怎么外接显示器_什么值得买...
  16. 满风资产 | 量化研究员招聘(实习+全职)
  17. 机器视觉系统图像采集卡功能特点及应用场景介绍
  18. 嵌入式设备启动过程(ARM )
  19. hdu6097—Mindis(计算几何)
  20. Python字典处理

热门文章

  1. Core Dump流程分析
  2. 【问链-Eos公开课】第四课 EOS 的钱包创建、导入私钥
  3. Android中关于setLatestEventInfo()过时以及构建Notification的解决方法
  4. mysql新手注意事项_学习mysql的注意事项!
  5. lightroom 闪退_UP加速器闪退怎么办 UP加速器闪退解决方法
  6. 微服务架构设计模式 pdf_六种常用的微服务架构设计模式之一: 入门级模式...
  7. LOJ #6669 Nauuo and Binary Tree (交互题、树链剖分)
  8. java 有序set_Java 从Set里面取出有序的记录详解及实例
  9. 未明确定义列存储过程没问题_使用Apache Kudu和Impala实现存储分层
  10. sqlserver/mysql按天,按小时,按分钟统计连续时间段数据