zoukankan      html  css  js  c++  java
  • 洛谷P2677 超级书架 2

    题目描述

    Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了。现在,只有书架的顶上还留有一点空间。 所有N(1 <= N <= 20)头奶牛都有一个确定的身高H_i(1 <= Hi <= 1,000,000 - 好高的奶牛><)。 设所有奶牛身高的和为S。书架的 高度为B,并且保证1 <= B <= S。 为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不象演杂技一般,一头站在另一头的背上,叠成一座“奶牛塔”。当然,这个塔的高度,就是塔中所有奶牛 的身高之和。为了往书架顶上放东西,所有奶牛的身高和必须不小于书架的高度。 塔叠得越高便越不稳定,于是奶牛们希望找到一种方案,使得叠出的塔在高度不小于书架高度的情况下,高度尽可能小。你也可以猜到你的任务了:写一个程序,计 算奶牛们叠成的塔在满足要求的情况下,最少要比书架高多少。

    输入输出格式

    输入格式:
    • 第1行: 2个用空格隔开的整数:N 和 B * 第2..N+1行: 第i+1行是1个整数:H_i
    输出格式:
    • 第1行: 输出1个非负整数,即奶牛们叠成的塔最少比书架高的高度

    输入输出样例

    输入样例#1:
    5 16
    3
    1
    3
    5
    6
    输出样例#1:
    1

    说明

    输出说明:

    我们选用奶牛1、3、4、5叠成塔,她们的总高度为3 + 3 + 5 + 6 = 17。任何方案都无法叠出高度为16的塔,于是答案为1。

    由于要输出满足条件的最小解,不能无脑贪心了。

    改成无脑全排列吧

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cmath>
     5 #include<queue>
     6 using namespace std;
     7 priority_queue<int>tp;
     8 int x[24];
     9 int n,b;
    10 int ans=1e5;
    11 int cmp(int a,int b){return a>b;}
    12 void dfs(int last,int smm){
    13     if(smm>=b){
    14         ans=min(ans,smm);
    15         return;
    16     }
    17     int i,j;
    18     for(i=last;i<=n;i++){
    19         dfs(i+1,smm+x[i]);
    20     }
    21     return;
    22 }
    23 int main(){
    24     scanf("%d%d",&n,&b);
    25     int i,j;
    26     for(i=1;i<=n;i++)
    27         scanf("%d",&x[i]);
    28     sort(x+1,x+n+1);
    29     dfs(1,0);
    30     printf("%d
    ",ans-b);
    31     return 0;
    32 }
  • 相关阅读:
    array_map()与array_shift()搭配使用 PK array_column()函数
    Educational Codeforces Round 8 D. Magic Numbers
    hdu 1171 Big Event in HDU
    hdu 2844 poj 1742 Coins
    hdu 3591 The trouble of Xiaoqian
    hdu 2079 选课时间
    hdu 2191 珍惜现在,感恩生活 多重背包入门题
    hdu 5429 Geometric Progression 高精度浮点数(java版本)
    【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
    hdu::1002 A + B Problem II
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/5927810.html
Copyright © 2011-2022 走看看