zoukankan      html  css  js  c++  java
  • 洛谷 P1361 小猫爬山

                                     P1361 小猫爬山

    题目描述

    WD和LHX饲养了N只小猫,这天,小猫们要去爬山。经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了。

    WD和LHX只好花钱让它们坐索道下山。索道上的缆车最大承重量为W,而N只小猫的重量分别是C1、C2……CN。当然,每辆缆车上的小猫的重量之和不能超过W。每租用一辆缆车,WD和LHX就要付1美元,所以他们想知道,最少需要付多少美元才能把这N只小猫都运送下山?

    输入输出格式

    输入格式:

    第一行包含两个用空格隔开的整数,N和W。

    接下来N行每行一个整数,其中第i+1行的整数表示第i只小猫的重量C i。

    输出格式:

    输出一个整数,最少需要多少美元,也就是最少需要多少辆缆车。

    输入输出样例

    输入样例#1:
    5 1996
    1
    2
    1994
    12
    29
    
    
    输出样例#1:
    2

    说明

    数据范围与约定

    对于100%的数据,1<=N<=18,1<=C i <=W<=10^8。

    虽然看上去像贪心 

    但却是迭代加深

     1 /*
     2     巧妙地迭代加深
     3     把猫往车厢里塞复杂度太高 
     4     我们就向车厢塞猫
     5     先遍历车厢数 
     6     再递归塞猫 看猫能进哪个车厢 
     7 */
     8 #include <cctype>
     9 #include <cstdio>
    10 
    11 const int MAXN=20;
    12 
    13 int n,we;
    14 
    15 int a[MAXN],v[MAXN];
    16 
    17 inline void read(int&x) {
    18     int f=1;register char c=getchar();
    19     for(x=0;!isdigit(c);c=='-'&&(f=-1),c=getchar());
    20     for(;isdigit(c);x=x*10+c-48,c=getchar());
    21     x=x*f;
    22 }
    23 
    24 bool dfs(int u,int num) {
    25     for(int i=1;i<=u&&i<=num;++i) {
    26         if(v[i]+a[u]<=we) {
    27             v[i]+=a[u];
    28             if(u==n) return true;
    29             if(dfs(u+1,num)) return true;
    30             v[i]-=a[u];
    31         }
    32     }
    33     return false;
    34 }
    35 
    36 int hh() {
    37     read(n);read(we);
    38     for(int i=1;i<=n;++i) read(a[i]);
    39     for(int i=1;i<=n;++i) {
    40         for(int j=1;j<=n;++j) v[j]=0;
    41         if(dfs(1,i)) {
    42             printf("%d
    ",i);
    43             break;
    44         }
    45     }
    46     return 0;
    47 }
    48 
    49 int sb=hh();
    50 int main(int argc,char**argv) {;}
    代码


    作者:乌鸦坐飞机
    出处:http://www.cnblogs.com/whistle13326/
    新的风暴已经出现 怎么能够停止不前 穿越时空 竭尽全力 我会来到你身边 微笑面对危险 梦想成真不会遥远 鼓起勇气 坚定向前 奇迹一定会出现

     
  • 相关阅读:
    MySQL中tinytext、text、mediumtext和longtext详解
    端口冲突
    Form绑定
    Uri绑定
    只绑定Get参数
    Linux:Day4(上) 文件管理、管道
    selenium之frame
    selenium之选项卡管理
    Request
    爬虫常用库
  • 原文地址:https://www.cnblogs.com/whistle13326/p/7470671.html
Copyright © 2011-2022 走看看