Acwing-165-小猫爬山(搜索)
链接:
https://www.acwing.com/problem/content/167/
题意:
翰翰和达达饲养了N只小猫,这天,小猫们要去爬山。
经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<)。
翰翰和达达只好花钱让它们坐索道下山。
索道上的缆车最大承重量为W,而N只小猫的重量分别是C1、C2……CN。
当然,每辆缆车上的小猫的重量之和不能超过W。
每租用一辆缆车,翰翰和达达就要付1美元,所以他们想知道,最少需要付多少美元才能把这N只小猫都运送下山?
思路:
Dfs, 每次有坐旧车和新车.
搞一下就行, 注意排序减少可能性.
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL Wei[20], w, a[20];
int ans = 50, n;
void Dfs(int cat, int pos)
{
    if (pos >= ans)
        return ;
    if (cat == n+1)
    {
        ans = min(ans, pos);
        return ;
    }
    for (int i = 1;i <= pos;i++)
    {
        if (w-Wei[i] >= a[cat])
        {
            Wei[i] += a[cat];
            Dfs(cat+1, pos);
            Wei[i] -= a[cat];
        }
    }
    Wei[pos+1] = a[cat];
    Dfs(cat+1, pos+1);
    Wei[pos+1] = 0;
}
int main()
{
    scanf("%d%lld", &n, &w);
    for (int i = 1;i <= n;i++)
        scanf("%lld", &a[i]);
    sort(a+1, a+1+n, greater<LL>());
    Dfs(1, 0);
    printf("%d\n", ans);
    return 0;
}
												
											Acwing-165-小猫爬山(搜索)的更多相关文章
- AcWing 165. 小猫爬山   DFS
		
165. 小猫爬山 https://www.acwing.com/problem/content/description/167/ 题目 思路 dfs每一个小猫,对于要不要开新车的状态再进行dfs(注 ...
 - AcWing:165. 小猫爬山(dfs + 剪枝)
		
翰翰和达达饲养了N只小猫,这天,小猫们要去爬山. 经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). 翰翰和达达只好花钱让它们坐索道下山. 索道上的缆 ...
 - AcWing P165 小猫爬山 题解
		
Analysis 这道题是搜索,类似于小木棍,加一些剪枝. 第一个剪枝是如果当前的答案已经大于了我们已知的最小答案,不用说直接return返回即可. 第二个剪枝是我们可以将小猫的体重从大到小排序,这样 ...
 - tyvj P2018 「Nescafé26」小猫爬山 解题报告
		
P2018 「Nescafé26」小猫爬山 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经 ...
 - 「CH2201」小猫爬山 解题报告
		
CH2201 小猫爬山 背景 Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). 描述 ...
 - TyvjP2018 「Nescafé26」小猫爬山
		
P2018 「Nescafé26」小猫爬山 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经 ...
 - codevs 4228 小猫爬山 【搜索】By cellur925
		
题目描述 Description Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). ...
 - 洛谷 P1361 小猫爬山
		
题目描述 WD和LHX饲养了N只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了. WD和LHX只好花钱让它们坐索道下山.索道上的缆车最大承重量为W ...
 - luogu P1361 小猫爬山 [iddfs]
		
题目描述 WD和LHX饲养了N只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了. WD和LHX只好花钱让它们坐索道下山.索道上的缆车最大承重量为W ...
 
随机推荐
- java分词工具hanlp介绍
			
前几天(6月28日),在第23届中国国际软件博览会上,hanlp这款自然语言处理工具荣获了“2019年第二十三届中国国际软件博览会优秀产品”. HanLP是由一系列模型预算法组成的工具包,结合深度神经 ...
 - mysql语句(一)
			
--建表CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` ...
 - commons-lang3依赖下的StringUtils类的isEmpty()方法和isBlank()方法
			
isEmpty()方法源码 isBlank()方法源码 测试 import org.apache.commons.lang3.StringUtils; public class main { publ ...
 - DLL导出函数
			
使用DEF文件从DLL导出 模块定义(.def)文件时包含一个或多个描述DLL各种属性的Module语句的文本文件.如果不使用_declspec(dllexport)关键字导出DLL的函数,则DLL需 ...
 - TP5实现自定义抛出异常消息(关闭debug)
			
重写Handle的render方法,实现自定义异常消息----------------------------------------------------------------------- 首 ...
 - php通过session来实现登录验证
			
1.概述 这几天在做一个内部统计管理系统,所有内容需要登录后才能查看.这就需要系统内部每个模块都有登录验证的功能.在网上找了一圈资料,决定用session来做. 2.系统概况 后端语言:php(用的是 ...
 - Rust 优劣势: v.s. C++ / v.s. Go(持续更新)
			
Rust 发展速度比 C++ 强很多.如果去翻 open-std 的故纸堆,会发现 C++ 这边有很多人(包括标准委员会的人)提了有用的提案,但后来大多不了了之或经历了非常长的时间才进入标准. > ...
 - 怎样创建并使用 vue 组件 (component) ?
			
组件化开发 需要使用到组件, 围绕组件, Vue 提供了一系列功能方法, 这里仅记录组件的 最简单 的使用方法. 1. 通过 Vue.component(tagName, options) 注册一个 ...
 - [C#]使用BackgroudWorker刷新UI延迟的解决方法
			
今天使用BackgroundWorker刷新UI发生延时现象,找了好久才发现AutoResetEvent可以解决,代码如下 private void BgWorker_ProgressChanged( ...
 - Cannot assign to read only property 'exports' of object  at webpack ....BaseClient
			
网上找了很多资料说是import和export不能一起用,改代码 其实根本原因是es6和es5混合使用造成的兼容性问题 只需要配置.babelrc就可以了 首先安装 npm install -D tr ...