题目描述

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。

搜索回溯 +剪枝 : 把前i只猫放在前i个缆车上

屠龙宝刀点击就送

#include <cstdio>
bool flag;
int Num,Sum,n,w,c[],sum[];
int min(int x,int y)
{
return x>y?y:x;
}
void dfs(int lc,int Gs)
{
if(flag) return;
if(Gs==n)
{
flag=;
return;
}
Gs++;
for(int i=;i<=min(lc,Gs);i++)
{
if(sum[i]+c[Gs]<=w)
{
sum[i]=sum[i]+c[Gs];
dfs(lc,Gs);
sum[i]=sum[i]-c[Gs];
}
}
}
int main()
{
scanf("%d%d",&n,&w);
for(int i=;i<=n;i++) scanf("%d",&c[i]);
while(++Num)
{
dfs(Num,);
if(flag)
{
printf("%d",Num);
return ;
}
}
}
#include <cstdio>
bool vis[];
int instack[],C[],cat[],cat_ls[],N,W,Maxn,leng,Answer;
void dfs(int num,int pos,int w)
{
cat_ls[num]=pos;
if(w>Maxn)
{
for(int k=;k<=num;k++) cat[k]=cat_ls[k];
Maxn=w;
leng=num;
}
for(int j=pos+;j<=N;j++)
{
if(w+C[j]<=W&&instack[j]==&&!vis[j]) instack[j]=,dfs(num+,j,w+C[j]),instack[j]=;
}
}
int main()
{
scanf("%d%d",&N,&W);
for(int i=;i<=N;i++) scanf("%d",&C[i]);
for(int i=;i<=N;i++)
{
if(!vis[i])
{
instack[i]=;
Answer++;
Maxn=;
dfs(,i,C[i]);
for(int j=;j<=leng;j++) vis[cat[j]]=,instack[cat[j]]=;
}
}
printf("%d",Answer);
return ;
}

74分贪心代码存档

最新文章

  1. ASP.NET DAY1
  2. JAVA EE 第一阶段考试
  3. python 练习 4
  4. HTML 5 参考手册
  5. Tomcat日志问题
  6. Shell编程速查手册
  7. C# static 干货全解析
  8. try-catch-finally块的运行机制
  9. java api例子网站
  10. windows下wamp多域名的配置
  11. 怎么解决VMware“该虚拟机似乎正在使用中”问题
  12. 【翻译】asp.net core中使用MediatR
  13. Linux运维(首页)
  14. 我的Mac Pro coding环境配置
  15. Bitcoin区块验证
  16. InnoDB Record, Gap, and Next-Key Locks
  17. 计蒜客 30994 - AC Challenge - [状压DP][2018ICPC南京网络预赛E题]
  18. sqli-labs学习(less-5-less-7)
  19. 使用pyplot和seaborn进行画图
  20. rest-assured之静态导入及简单使用实例

热门文章

  1. ASP.NET统计图表控件
  2. macbook pro 一些操作经验记录
  3. bzoj2878 [Noi2012]迷失游乐园——概率期望DP
  4. linux下Postgresql-9.2安装及数据库的创建过程
  5. asp.net MVC 单选按钮的使用
  6. BZOJ1879 Bill的挑战
  7. 使用git rebase合并多次commit
  8. lightoj1200 【完全背包】
  9. hdoj5698
  10. python string类型 bytes类型 bytearray类型