zoukankan      html  css  js  c++  java
  • P1103 书本整理

    P1103 书本整理

    题目描述

    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。

    保证高度不重复

    输出格式:

    一行一个整数,表示书架的最小不整齐度。

    输入输出样例

    输入样例#1:
    4 1
    1 2
    2 4
    3 1
    5 3
    
    输出样例#1:
    3

    分析:

    区间dp的题,有点像乘积最大。

    去掉k本书的最优值,相当于选择n-k本书的最优值。

    f[i][j]表示前j本书中选i本的最优值。

    或者说选了i本书,最后一本是j的最小不整齐度。

     1 #include<algorithm>  
     2 #include<iostream>  
     3 #include<cstring>  
     4 #include<cstdio>  
     5 using namespace std;  
     6 const int N=105;  
     7 int n,k,ans=1e9+7,f[N][N];  
     8 //选了i本书,最后一本是j的最小不整齐度。   
     9 struct book  
    10 {  
    11     int x,y;  
    12 }a[N];  
    13 bool cmp(book c,book d)  
    14 {  
    15     return c.x<d.x;  
    16 }  
    17 int main()  
    18 {  
    19     scanf("%d%d",&n,&k);  
    20     for(int i=1;i<=n;i++)  
    21         scanf("%d%d",&a[i].x,&a[i].y);  
    22     sort(a+1,a+n+1,cmp);  
    23     memset(f,0x3f,sizeof(f));  
    24     for(int i=1;i<=n;i++)  
    25         f[1][i]=0;  
    26     for(int i=2;i<=n-k;i++)  
    27         for(int j=i;j<=n;j++)  
    28             for(int g=1;g<=j-1;g++)  
    29                 f[i][j]=min(f[i][j],f[i-1][g]+abs(a[j].y-a[g].y));  
    30     for(int i=n-k;i<=n;i++)  
    31         ans=min(ans,f[n-k][i]);  
    32     printf("%d
    ",ans);  
    33     return 0;  
    34 }  
     
     
     



  • 相关阅读:
    list, tuple, dict, set的用法总结
    函数的参数
    常用库函数
    Postman 常用测试结果验证的方法
    Loadrunner 使用代理录制脚本
    POSTMAN脚本录制
    Fiddler模拟post四种请求数据
    Python函数修饰符@的使用
    robot framework集成Jenkins环境
    python的位置参数、默认参数、关键字参数、可变参数区别
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7426248.html
Copyright © 2011-2022 走看看