【问题描述】

小明的书架上放了许多书,为了使书架变得整洁,小明决定整理书架,他将所有书按高度大小排列,这样排了之后虽然整齐了许多,但小明发现,书本的宽度不同,导致书架看上去还是有些凌乱。小明把这个凌乱值定义为相邻两本书的宽度差的绝对值的和。

例如有4本书:

1×2

5×3

2×4

3×1

那么小明将其排列整齐后的顺序是:

1×2

2×4

3×1

5×3

凌乱值就是2+3+2=7

于是小明决定拿掉其中的k本书,使凌乱值最小,你能帮他求出这个最小值吗?已知每本书的高度都不一样。

【问题输入】

第一行两个数字n和k,代表书总共有n本,要求从中去掉k本。\((l\le n \le 100, 1\le k \le n)\)。下面的n行,每行两个数字表示一本书的高度和宽度,它们均小于200。

【问题输出】

一行一个整数,表示书架的最小凌乱值。

【样例输入】

4 1

1 2

2 4

3 1

5 3

【样例输出】

3

【数据范围】

30%的数据,n≤20。

100%的数据,n≤l00,k<n。

题解

JYT:这是一道简单的动态规划题……

记录去掉\(k\)本比较麻烦,那就记录留下\(n-k\)本吧……

设\(dp[i][j]\)表示到第\(i\)本且必须保留\(i\),保留了\(j\)本的方案数。

容易得到转移方程:

\(dp[i][kk+1] = \min(dp[i][kk+1], dp[j][kk] + abs(book[i].kuan - book[j].kuan))\)

book[i].kuan表示第\(i\)本书的宽度。

代码如下:

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm> using namespace std; #define fill(a) memset(a, 0x3f, sizeof(a)) const int maxn = 105; int dp[maxn][maxn]; struct BOOK
{
int quan, h, kuan; inline bool operator < (const BOOK& other) const
{
return h < other.h;
}
} book[maxn]; const int inf = 0x3f3f3f3f; int main()
{
freopen("book.in", "r", stdin);
freopen("book.out", "w", stdout);
int n, k;
scanf("%d%d", &n, &k);
for(int i = 1; i <= n; ++i)
scanf("%d%d", &book[i].h, &book[i].kuan);
k = n-k;
sort(book+1, book+1+n);
fill(dp);
for(int i = 1; i <= n; ++i)
dp[i][1] = 0;
for(int i = 2; i <= n; ++i)
for(int j = 1; j < i; ++j)
for(int kk = 1; kk < k; ++kk)
dp[i][kk+1] = min(dp[i][kk+1], dp[j][kk] + abs(book[i].kuan - book[j].kuan));
int ans = inf;
for(int i = 1; i <= n; ++i)
ans = min(ans, dp[i][k]);
printf("%d", ans);
return 0;
}

20180610模拟赛T3——书本整理的更多相关文章

  1. 体育成绩统计——20180801模拟赛T3

    体育成绩统计 / Score 题目描述 正所谓“无体育,不清华”.为了更好地督促同学们进行体育锻炼,更加科学地对同学们进行评价,五道口体校的老师们在体育成绩的考核上可谓是煞费苦心.然而每到学期期末时, ...

  2. 20180610模拟赛T1——脱离地牢

    Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...

  3. 20180520模拟赛T3——chess

    [问题描述] 小美很喜欢下象棋. 而且她特别喜欢象棋中的马. 她觉得马的跳跃方式很独特.(以日字格的方式跳跃) 小芳给了小美一张很大的棋盘,这个棋盘是一个无穷的笛卡尔坐标. 一开始\(time=0\) ...

  4. 2016.10.30 NOIP模拟赛 day2 PM 整理

    满分:300分 直接全部爆零,真的是很坑啊! 10.30的题目+数据:链接:http://pan.baidu.com/s/1jHXLace 密码:i784 T1: 题目中的难点就是每次折叠的点可能应经 ...

  5. 2016.10.30 NOIP模拟赛 day2 AM 整理

    题目+数据:链接:http://pan.baidu.com/s/1gfBg4h1 密码:ho7o 总共得了:130分, 1:100分  2:30分(只会这30分的暴力) 3:0(毫无思路) 虽然不高, ...

  6. 2016.10.29 NOIP模拟赛 PM 考试整理

    300分的题,只得了第三题的100分. 题目+数据:链接:http://pan.baidu.com/s/1o7P4YXs 密码:4how T1:这道题目存在着诸多的问题: 1.开始的序列是无法消除的( ...

  7. 20161005 NOIP 模拟赛 T3 解题报告

    subset 3.1 题目描述 一开始你有一个空集,集合可以出现重复元素,然后有 Q 个操作 1. add s 在集合中加入数字 s. 2. del s 在集合中删除数字 s.保证 s 存在 3. c ...

  8. ztz11的noip模拟赛T3:评分系统

    代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  9. 2019.10.02模拟赛T3

    题目大意: 设$S(n,m)$为第二类斯特林数,$F_i$表示斐波那契数列第$i$项. 给定$n,R,K$,求$\sum\limits_{i=1}^{n}(\sum\limits_{m=1}^{R}F ...

随机推荐

  1. [LeetCode] 617. Merge Two Binary Trees 合并二叉树

    Given two binary trees and imagine that when you put one of them to cover the other, some nodes of t ...

  2. [BZOJ1852] [MexicoOI06]最长不下降序列

    [BZOJ1852] [MexicoOI06]最长不下降序列 额我也不知道是不是水过去的...和网上的另一篇题解对拍过了,但是拍不出来... 经过和神仙的讨论基本可以确定是对的了 考虑如下贪心 (我将 ...

  3. 开源组件websocket-sharp中基于webapi的httpserver使用体验

    一.背景 因为需要做金蝶ERP的二次开发,金蝶ERP的开放性真是不错,但是二次开发金蝶一般使用引用BOS.dll的方式,这个dll对newtonsoft.json.dll这个库是强引用,必须要用4.0 ...

  4. idea之导入Eclipse Maven项目

    Idea之导入Eclipse Maven项目:https://blog.csdn.net/qq_33442160/article/details/81876428参考上述链接即可,这里不再赘述.

  5. C# HTTP系列3 HttpWebRequest.ContentType属性

    系列目录     [已更新最新开发文章,点击查看详细] 获取或设置请求的 Content-type HTTP 标头的值.默认值为null. 常见的请求内容类型为以下几种: /// <summar ...

  6. SpringBoot之RESTful风格

    SpringBoot之RESTful风格 1.RESTful介绍 RESTful是一种软件架构风格,一种时尚! RESTful架构风格规定,数据的元操作,即CRUD(create, read, upd ...

  7. mysql备份、还原数据库(命令行)

    这里记录下MySQL如何通过命令行备份和还原数据库. 简单的三个步骤 方法很简单,可以分为三个步骤: 1.打开cmd控制台(命令行). 2.输入相应命令完成备份还原操作. 3.关闭cmd控制台. 就和 ...

  8. BCryptPasswordEncoder 判断密码是否相同

    加密 BCryptPasswordEncoder encode = new BCryptPasswordEncoder(); encode.encode(password); 比较 matches(C ...

  9. 参加AWS技术峰会的收获与思考

    7月31日,我参加了AWS 技术峰会2019北京站的会议. 从厦门到帝都,奔赴千里,只为一场技术盛宴,我想记录一些收获和思考,才能不负此行. 大会议程全天,上午是主题演讲和行业解决方案展示,下午是技术 ...

  10. Mysql系列(十一)—— 性能分析慢查询日志

    转载自:http://www.cnblogs.com/kerrycode/p/5593204.html 慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响 ...