luogu P1361 小猫爬山 [iddfs]
题目描述
WD和LHX饲养了N只小猫,这天,小猫们要去爬山。经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了。
WD和LHX只好花钱让它们坐索道下山。索道上的缆车最大承重量为W,而N只小猫的重量分别是C1、C2……CN。当然,每辆缆车上的小猫的重量之和不能超过W。每租用一辆缆车,WD和LHX就要付1美元,所以他们想知道,最少需要付多少美元才能把这N只小猫都运送下山?
输入输出格式
输入格式:
第一行包含两个用空格隔开的整数,N和W。
接下来N行每行一个整数,其中第i+1行的整数表示第i只小猫的重量C i。
输出格式:
输出一个整数,最少需要多少美元,也就是最少需要多少辆缆车。
输入输出样例
5 1996
1
2
1994
12
29
2
说明
数据范围与约定
对于100%的数据,1<=N<=18,1<=C i <=W<=10^8。
My Solution
都已经是蒟蒻了solution写长一点吧
迭代加深排序iddfs的膜版之一,k从sum(data[0],data[1],...,data[n-1])/q到n之间
k表示最小可行答案(就是最后的答案啦)
注意data[0...n-1]从小到大排序
结果还是很短啊
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; inline int read(){
char ch;
int re=;
while((ch=getchar())<''||ch>'');
re=ch-'';
while((ch=getchar())>=''&&ch<='') re=re*+ch-'';
return re;
} const int maxn=;
int data[maxn];
int q,n;
int k=;
bool ok=;
int car[maxn]={}; void init(){
n=read(),q=read();
for(int i=;i<n;i++){
data[i]=read();
k+=data[i];
}
k/=q;
} void iddfs(int pos){
if(pos==n){
ok=;
return;
}
for(int i=;i<=k;i++)
if(car[i]+data[pos]<=q){
car[i]+=data[pos];
iddfs(pos+);
car[i]-=data[pos];
if(ok) return;
}
} inline bool compp(const int &n1,const int &n2){
return n1>n2;
} void solve(){
sort(data,data+n,compp);
while(k<=n){
iddfs();
if(ok){
printf("%d\n",k);
return;
}
k++;
}
} int main(){
//freopen("temp.in","r",stdin);
init();
solve();
return ;
}
luogu P1361 小猫爬山 [iddfs]的更多相关文章
- 洛谷——P1361 小猫爬山
https://www.luogu.org/problem/show?pid=1361#sub 题目描述 WD和LHX饲养了N只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们终于爬上了山顶,但是疲 ...
- 洛谷 P1361 小猫爬山
题目描述 WD和LHX饲养了N只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了. WD和LHX只好花钱让它们坐索道下山.索道上的缆车最大承重量为W ...
- tyvj P2018 「Nescafé26」小猫爬山 解题报告
P2018 「Nescafé26」小猫爬山 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经 ...
- luogu P1361 小M的作物
题目链接 luogu P1361 小M的作物 题解 源汇点为A,B 向种子连边,容量为价值,每个种子能与A或B联通,考虑最小割 用建边的总流量减去最小割就是答案 相同利益的时候新建节点,由额外利益构成 ...
- TyvjP2018 「Nescafé26」小猫爬山
P2018 「Nescafé26」小猫爬山 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经 ...
- 「CH2201」小猫爬山 解题报告
CH2201 小猫爬山 背景 Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). 描述 ...
- AcWing 165. 小猫爬山 DFS
165. 小猫爬山 https://www.acwing.com/problem/content/description/167/ 题目 思路 dfs每一个小猫,对于要不要开新车的状态再进行dfs(注 ...
- 小猫爬山:dfs
题目描述: 翰翰和达达饲养了N只小猫,这天,小猫们要去爬山. 经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). 翰翰和达达只好花钱让它们坐索道下山. ...
- 2018.11.5 Nescafe26 T1 小猫爬山
题目 题目描述 Freda 和 rainbow 饲养了 N 只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们 终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). Fre ...
随机推荐
- Scrapy教程--豆瓣电影图片爬取
一.先上效果 二.安装Scrapy和使用 官方网址:https://scrapy.org/. 安装命令:pip install Scrapy 安装完成,使用默认模板新建一个项目,命令:scrapy s ...
- IE低版本兼容的感悟
2017-04-09 曾经折磨一代人的兼容问题,如今也在同样折磨着我们,明明可以做JS判断来避免对ie低版本的兼容,但是却还是耐心的做着兼容,你可能会问这是为什么, 我们调的不是兼容,是整整一代人的情 ...
- DNS分析之 dnsdict6 使用方法
基本用法就是: dnsdict6 -d46 -t 10 baidu.com
- jquery实现导航栏效果
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...
- VMWare、KVM、Virtualbox克隆或复制Linux虚拟机后eth0找不到的解决方案
快速处理办法: cat /etc/sysconfig/network-scripts/ifcfg-eth0 sed -i '/UUID/d' /etc/sysconfig/network-script ...
- 来吧学学.Net Core之登录认证与跨域资源使用
序言 学习core登录认证与跨域资源共享是越不过的砍,所以我在学习中同样也遇到啦这两个问题,今天我们就用示例来演示下使用下这2个技术点吧. 本篇主要内容如下: 1.展示一个登录认证的简单示例 2.跨域 ...
- 解决发http get请求的时候不成功,出现android.os.NetworkOnMainThreadException的异常
问题描述:在接游戏sdk的时候,由于游戏要求购买的时候是在主线程里面进行的,但是发http请求是不能在主线程里面发,否则就会出现android.os.NetworkOnMainThreadExcept ...
- 9.session的生命周期
1.创建 当客户端第一次访问某个jsp或者Servlet的时候,服务器会为当前会话创建一个SessionId,每次客户端向服务端发送请求的时候,都会将此SessionId携带过去,服务端会对此Sess ...
- 分页插件Jpages的使用
项目原因需要前端做分页表格,之前做了一个ul的分页效果,但是感觉自己写还是造轮子了,今天网上看到Jpqges插件就试了下,感觉平时使用挺方便的,写一下自己的使用过程. 先上套图,下载下来就2个js和1 ...
- php 时间戳转化成天数 四舍五入 整数
public function edit() { global $_W; global $_GPC; $openid=$_W['openid']; $boards = pdo_fetchall('se ...