标题:求背包问题的思路!
取消只看楼主
雪山的猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:5
注 册:2012-12-23
结帖率:95.24%
已结贴  问题点数:6 回复次数:4 
求背包问题的思路!
设有一个背包可以放入的物品重量为S,现有n件物品,重量分别是w1,w2,w3,…wn。
问能否从这n件物品中选择若干件放入背包中,使得放入的重量之和正好为S。
input
20 5
1 3 5 7 9
Sample Output
YES
程序代码:
#include"iostream"
using namespace std;
int a[1000];
int f(int x,int y)
{
    if(x==0)
    return 1;
    if(x<0||(x>0&&y<1))
    return 0;
    if(f(x-a[y],y-1))
    return 1;
    return f(x,y-1);
}
int main()
{
    int i,s,n;
    while(cin>>s>>n)
    {
        for(i=1;i<=n;i++)
        {
            cin>>a[i];
        }
        if(f(s,n))
        cout<<"YES"<<endl;
        else
        cout<<"NO"<<endl;
    }
    return 0;
}
首先我是想问大家思路的,我真的想不出来了,循环式没法了。但求到了段代码有 看不懂。所以大家要么讲下代码或给个思路。。!!!
搜索更多相关主题的帖子: 背包 物品 color 
2013-05-20 20:47
雪山的猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:5
注 册:2012-12-23
得分:0 
回复 2楼 我叫沃恩
唉!!我就是调用那看不懂哟!他的递归我看着吃力。首先后面俩个return就不懂了。还有就是他的递归真的能遍历完数组??用循环应该不行吧!!
2013-05-20 22:21
雪山的猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:5
注 册:2012-12-23
得分:0 
饿!!百度的背包九讲,有点。。。。没代码在一起还真不好理解哟!!就没有讲代码的? 呜呜呜呜呜呜!!!求助。
2013-05-21 20:17
雪山的猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:5
注 册:2012-12-23
得分:0 
回复 3楼 邓士林
结构体??关键是循环的遍历我无法想出。。
2013-05-21 20:18
雪山的猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:5
注 册:2012-12-23
得分:0 
回复 5楼 czz5242199
哟!!按你给的关键字终于百度到了,有人如果要探究的话我给个网址,做做好人:http://wenku.baidu.com/view/3aa0c534ee06eff9aef8076c.html
2013-05-21 20:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-407566-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.223683 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved