洛谷——P1103 书本整理
https://www.luogu.org/problem/show?pid=1103
题目描述
Frank是一个非常喜爱整洁的人。他有一大堆书和一个书架,想要把书放在书架上。书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架上。但是Frank发现,由于很多书的宽度不同,所以书看起来还是非常不整齐。于是他决定从中拿掉k本书,使得书架可以看起来整齐一点。
书架的不整齐度是这样定义的:每两本书宽度的差的绝对值的和。例如有4本书:
1x2 5x3 2x4 3x1 那么Frank将其排列整齐后是:
1x2 2x4 3x1 5x3 不整齐度就是2+3+2=7
已知每本书的高度都不一样,请你求出去掉k本书后的最小的不整齐度。
输入输出格式
输入格式:
第一行两个数字n和k,代表书有几本,从中去掉几本。(1<=n<=100, 1<=k<n)
下面的n行,每行两个数字表示一本书的高度和宽度,均小于200。
保证高度不重复
输出格式:
一行一个整数,表示书架的最小不整齐度。
输入输出样例
4 1
1 2
2 4
3 1
5 3
3 先以高度排序,
拿走K本看做只选n-k本,f[i][j]表示前i本中,一定有第i本,且已经选了j本、
则f[i][j]=min{ f[t][j-1]+abs(w[i]-w[t] }
#include <algorithm>
#include <cstdlib>
#include <cstdio> #define min(a,b) (a<b?a:b)
inline void read(int &x)
{
x=; register char ch=getchar();
for(; ch>''||ch<''; ) ch=getchar();
for(; ch>=''&&ch<=''; ch=getchar()) x=x*+ch-'';
}
const int N();
int n,k,f[N][N];
struct Node {
int h,w;
bool operator < (const Node x) const
{
return h<x.h;
}
}book[N]; int Presist()
{
read(n),read(k);k=n-k;
for(int i=; i<=n; ++i)
read(book[i].h),read(book[i].w);
std::sort(book+,book+n+);
int ans=0x3f3f3f3f;
for(int i=; i<=n; ++i)
{
for(int j=; j<=min(i,k); ++j)
{
f[i][j]=0x3f3f3f3f;
for(int t=j-; t<i; ++t)
f[i][j]=min(f[i][j],f[t][j-]+abs(book[i].w-book[t].w));
}
if(i>=k) ans=min(ans,f[i][k]);
}
printf("%d\n",ans);
return ;
} int Aptal=Presist();
int main(){;}
洛谷——P1103 书本整理的更多相关文章
- 洛谷 P1103 书本整理(动规)
洛谷 P1103 书本整理 题目描述 Frank是一个非常喜爱整洁的人.他有一大堆书和一个书架,想要把书放在书架上.书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架上.但是Frank发 ...
- Java实现 洛谷 P1103 书本整理
题目描述 Frank是一个非常喜爱整洁的人.他有一大堆书和一个书架,想要把书放在书架上.书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架上.但是Frank发现,由于很多书的宽度不同,所 ...
- 洛谷P1103 书本整理
题目描述 Frank是一个非常喜爱整洁的人.他有一大堆书和一个书架,想要把书放在书架上.书架可以放下所有的 书,所以Frank首先将书按高度顺序排列在书架上.但是Frank发现,由于很多书的宽度不同, ...
- P1103 书本整理
P1103 书本整理 题目描述 Frank是一个非常喜爱整洁的人.他有一大堆书和一个书架,想要把书放在书架上.书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架上.但是Frank发现,由 ...
- dp P1103 书本整理 洛谷
题目描述 Frank是一个非常喜爱整洁的人.他有一大堆书和一个书架,想要把书放在书架上.书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架上.但是Frank发现,由于很多书的宽度不同,所 ...
- luogu P1103 书本整理
题目描述 Frank是一个非常喜爱整洁的人.他有一大堆书和一个书架,想要把书放在书架上.书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架上.但是Frank发现,由于很多书的宽度不同,所 ...
- 【洛谷P1352】没有上司的舞会
[洛谷P1352]没有上司的舞会 x舷售 锚」翅θ 但是 拙臃 蓄ⅶ榔 暄条熨卫 翘ヴ馇 表现无愧于雪月工作室的核心管理 爸惚扎掬 颇瓶 芟缆肝 貌痉了 洵┭笫装 嗝◇裴腋 褓劂埭 ...
- 洛谷 P1226 【模板】快速幂||取余运算
题目链接 https://www.luogu.org/problemnew/show/P1226 题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 ...
- Lightning Conductor 洛谷P3515 决策单调性优化DP
遇见的第一道决策单调性优化DP,虽然看了题解,但是新技能√,很开森. 先%FlashHu大佬,反正我是看了他的题解和精美的配图才明白的,%%%巨佬. 废话不多说,看题: 题目大意 已知一个长度为n的序 ...
随机推荐
- UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\u8888′ in position 0: ordinal not in range(168)
python保存文件UnicodeEncodeError以及reload(sys)后print失效问题 在将字符串写入文件时,执行f.write(str),后台总是报错:UnicodeEncodeEr ...
- Sql 存储过程动态添加where条件
)= '2,3' )= '' ) if(@bussHallId is not null) set @strWhere = @strWhere + ' and bh.ID in ('+@bussHall ...
- Python数据科学安装Numby,pandas,scipy,matpotlib等(IPython安装pandas)
Python数据科学安装Numby,pandas,scipy,matpotlib等(IPython安装pandas) 如果还没有本地安装Python.IPython.notebook等请移步 上篇Py ...
- Android Studio3.0打包APK的时候 报错:
Error:Execution failed for task ':app:transformDexWithDexForRelease'.> com.android.build.api.tran ...
- 系统资源监控--windows
前言: 系统资源监控一般监控系统的CPU,内存,磁盘和网络.系统分为windows和Linux.本篇主要记录windows. Windows的监控相对与Linux监控工具来说比较简单,更多的是查看wi ...
- LR接口测试---Java Vuser之增删改查
import lrapi.lr; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...
- Spartan6系列之Spartan6系列之芯片时钟资源深入详解
1. 时钟资源概述 时钟设施提供了一系列的低电容.低抖动的互联线,这些互联线非常适合于传输高频信号.最大量减小时钟抖动.这些连线资源可以和DCM.PLL等实现连接. 每一种Spartan-6芯片提 ...
- codeforces_455B
B. A Lot of Games time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- 梦想CAD控件 2019.05.05更新
下载地址: http://www.mxdraw.com/ndetail_20141.html 1. 增加vs2017版本控件 2. 增加windows触摸屏支持 3. 增加手写签名功能 4. 修改PL ...
- 15Oracle Database 索引
Oracle Database 索引 索引 索引的目的是加快查询速度,就像一本数据的目录一样.建立索引的原则:非常少的DML操作:经常出现在where语句中的字段 2.20.1.建立索引 l 对t_ ...