165. 小猫爬山【爆搜+剪枝】
生活随笔
收集整理的這篇文章主要介紹了
165. 小猫爬山【爆搜+剪枝】
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#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++)//枚舉貓放在現(xiàn)有的那輛纜車上{if(s[i]+w[index]<=m){s[i]+=w[index];dfs(index+1);s[i]-=w[index];}}s[len++]=w[index];//再開(kāi)一個(gè)新的纜車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;
}
總結(jié)
以上是生活随笔為你收集整理的165. 小猫爬山【爆搜+剪枝】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 197. 阶乘分解【数论】
- 下一篇: 春季每日一题2022 Week 1 【完