165. 小猫爬山爆搜+剪枝
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了165. 小猫爬山爆搜+剪枝相关的知识,希望对你有一定的参考价值。
#include<bits/stdc++.h>
using namespace std;
const int N=25;
int w[N],s[N],n,m,ans,len=0;
void dfs(int index)
if(len>=ans) return;
if(index==n)
ans=min(ans,len);
return;
for(int i=0;i<len;i++)//枚举猫放在现有的那辆缆车上
if(s[i]+w[index]<=m)
s[i]+=w[index];
dfs(index+1);
s[i]-=w[index];
s[len++]=w[index];//再开一个新的缆车
dfs(index+1);
s[--len]-=w[index];
int main(void)
cin>>n>>m;
for(int i=0;i<n;i++) cin>>w[i];
ans=n;
dfs(0);
cout<<ans;
以上是关于165. 小猫爬山爆搜+剪枝的主要内容,如果未能解决你的问题,请参考以下文章