简单背包问题(0032)-swust oj

简单背包问题(0032)

Time limit(ms): 1000

Memory limit(kb): 65535

Submission: 5657

Accepted: 1714

Accepted

搜索 动态规划

设有一个背包可以放入的物品重量为S,现有n件物品,重量分别是w1,w2,w3,…wn。

问能否从这n件物品中选择若干件放入背包中,使得放入的重量之和正好为S。

如果有满足条件的选择,则此背包有解,否则此背包问题无解。

Description

输入数据有多行,包括放入的物品重量为s,物品的件数n,以及每件物品的重量(输入数据均为正整数)

多组测试数据。

Input

对于每个测试实例,若满足条件则输出“YES”,若不满足则输出“NO“

Output

20 5

1 3 5 7 9

Sample Input

YES

代码:

递归,遍历,搜索:

#include<iostream>
using namespace std;

int w[100],vis[100],k,s,n;
void dfs(int sum)
{
    if(sum==s)
    {
        k=1;
    }
    else
    {
        for(int i=0;i<n;i++)
            if(vis[i]==0)
            {
                vis[i]=1;
                dfs(sum+w[i]);
                vis[i]=0;
            }
    }
}

int main()
{
    int i;
    while(cin>>s>>n)
    {
        for(i=0;i<n;i++)
            cin>>w[i];
        k=0;
        dfs(0);
        if(k==1)
        {
            cout<<"YES"<<endl;
        }
        else
        {
            cout<<"NO"<<endl;
        }
    }
    return 0;
}
时间: 2024-10-11 06:48:02

简单背包问题(0032)-swust oj的相关文章

swust oj 简单背包问题(0032) DFS

Description 设有一个背包可以放入的物品重量为S,现有n件物品,重量分别是w1,w2,w3,…wn. 问能否从这n件物品中选择若干件放入背包中,使得放入的重量之和正好为S. 如果有满足条件的选择,则此背包有解,否则此背包问题无解. Input 输入数据有多行,包括放入的物品重量为s,物品的件数n,以及每件物品的重量(输入数据均为正整数) 多组测试数据. Output 对于每个测试实例,若满足条件则输出“YES”,若不满足则输出“NO“ Sample Input 20 5 1 3 5 7

swust oj 1026--Egg pain&#39;s hzf

题目链接:http://acm.swust.edu.cn/problem/1026/ Time limit(ms): 3000 Memory limit(kb): 65535 hzf is crazy about reading math recently,and he is thinking about a boring problem. Now there are n integers Arranged in a line.For each integer,he wants to know

SWUST OJ Euclid&#39;s Game(0099)

Euclid's Game(0099) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 1855 Accepted: 589 Description Starts with two unequal positive numbers (M,N and M>N) on the board. Two players move in turn. On each move, a player has to write on the boar

【动态规划】简单背包问题II

问题 B: [动态规划]简单背包问题II 时间限制: 1 Sec  内存限制: 64 MB提交: 21  解决: 14[提交][状态][讨论版] 题目描述 张琪曼:“为什么背包一定要完全装满呢?尽可能多装不就行了吗?” 李旭琳:“你说得对,这和墨老师曾告诉我们的‘日中则昃,月满则亏’是一个道理.”所以,现在的问题是,她们有一个背包容量为v(正整数,0≤v≤20000),同时有n个魔法石(0≤n≤30),每个魔法石有一个体积 (正整数).要求从n个魔法石中,任取若干个装入包内,使背包的剩余空间为最

swust oj 649--NBA Finals(dp,后台略(hen)坑)

题目链接:http://acm.swust.edu.cn/problem/649/ Time limit(ms): 1000 Memory limit(kb): 65535 Consider two teams, Lakers and Celtics, playing a series of NBA Finals until one of the teams wins n games. Assume that the probability of Lakers winning a game is

1469:数据结构:简单背包问题

本题难点:简单背包问题递归程序的理解 简单背包问题问题定义:有一个背包重量是S,有n件物品,重量分别是W0,W1...Wn-1问能否从这n件物品中选择若干件放入背包中使其重量之和正好为S 背包问题递归版本解释:其选择只有两种可能,选择一组物品中包含Wn-1 ,此时knap(s,n)的解就是knap(s - Wn-1,n-1)的解如果选择的物品中不包括Wn-1,这样knap(s,n)的解就是knap(s,n-1)的解knap(s,n) = true, 当 s=0时knap(s,n) = false

线段树 [SWUST OJ 764] 校门外的树 Plus Plus

校门外的树 Plus Plus(0764) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 214 Accepted: 15 Description 西南某科技大学的校门外长度为 L 的公路上有一排树,每两棵相邻的树之间的间隔都是 1 米.我们可以把马路看成一个数轴,马路的一端在数轴 1 的位置,另一端在 L 的位置:数轴上的每个整数点,即 1,2,……,L,都种有一棵树. 现在要将这排树的某一段涂成某种颜色,给定 N 组区间[ 

背包 [POJ 2184 SWUST OJ 145] Cow Exhibition

Cow Exhibition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9479   Accepted: 3653 Description "Fat and docile, big and dumb, they look so stupid, they aren't much  fun..."  - Cows with Guns by Dana Lyons The cows want to prove to

[Swust OJ 404]--最小代价树(动态规划)

题目链接:http://acm.swust.edu.cn/problem/code/745255/ Time limit(ms): 1000 Memory limit(kb): 65535 Description 以下方法称为最小代价的字母树:给定一正整数序列,例如:4,1,2,3,在不改变数的位置的条件下把它们相加,并且用括号来标记每一次加法所得到的和. 例如:((4+1)+ (2+3))=((5)+(5))=10.除去原数不4,1,2,3之外,其余都为中间结果,如5,5,10,将中间结果相加