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

    https://www.luogu.org/problem/show?pid=1361#sub

    题目描述

    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 #include <algorithm>
     2 #include <iostream>
     3 #include <cstdio>
     4 
     5 using namespace std;
     6 
     7 int n,w,cat[19000],sum[19000];
     8 bool flag;
     9 
    10 void DFS(int num_cat,int num_car)
    11 {
    12     if(flag) return ;
    13     if(num_cat==n+1)
    14     {
    15         flag=1;
    16         return ;
    17     }
    18     for(int i=1;i<=min(num_cat,num_car);i++)
    19         if(sum[i]+cat[num_cat]<=w)
    20         {
    21             sum[i]+=cat[num_cat];
    22             DFS(num_cat+1,num_car);
    23             sum[i]-=cat[num_cat];
    24         }
    25 }
    26 
    27 int main()
    28 {
    29     scanf("%d%d",&n,&w);
    30     for(int i=1;i<=n;i++)
    31         scanf("%d",&cat[i]);
    32     for(int i=1;i<=n;i++)
    33     {
    34         DFS(1,i);
    35         if(flag)
    36         {
    37             printf("%d",i);
    38             return 0;
    39         }
    40     }    
    41     return 0;
    42 }
    迭代加深DFS,正解
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int n,w,c[20],sum,p,ans=1;
     4 int main()
     5 {
     6     cin>>n>>w;
     7     for(int i=1;i<=n;i++)
     8     {
     9         cin>>c[i];
    10         sum+=c[i];
    11     }
    12     p=(sum+w-1)/w;
    13     cout<<p<<endl;    
    14     return 0;
    15 }
    水数据,贪心过
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    PythonStudy——数据类型总结 Data type summary
    PythonStudy——可变与不可变 Variable and immutable
    PythonStudy——列表操作 List operatio
    PythonStudy——列表的常用操作 List of common operations
    PythonStudy——列表类型 List type
    PythonStudy——字符串扩展方法 String extension method
    PythonStudy——字符串重要方法 String important method
    AWT,Swing,RCP 开发
    JQuery插件机制
    最新知识网站
  • 原文地址:https://www.cnblogs.com/Shy-key/p/6719918.html
Copyright © 2011-2022 走看看