TYVJ 2018 小猫爬山

来源:互联网 发布:自制地图软件 编辑:程序博客网 时间:2024/04/26 05:41

【迭代加深搜索】


【代码】

#include<iostream>#include<cstring>#include<cstdio>using namespace std;int n,w,v[101],vv[101];//v每只小猫重量,vv每辆缆车已装重量 bool dfs(int cur,int z)//第cur只小猫,有z辆缆车 {    for(int i=1;i<=cur&&i<=z;i++)        if(vv[i]+v[cur]<=w)        {            vv[i]+=v[cur];            if(cur==n)                return 1;            else                if(dfs(cur+1,z))                    return 1;            vv[i]-=v[cur];        }    return 0;}int main(){    scanf("%d%d",&n,&w);    for(int i=1;i<=n;i++)        scanf("%d",v+i);    for(int i=1;i<=n;i++)//搜索缆车数     {        memset(vv,0,sizeof(vv));        if(dfs(1,i))        {            printf("%d\n",i);            break;        }    }    return 0;}
0 0
原创粉丝点击