fjnu 1745 0-1背包
来源:互联网 发布:python cv 保存图片 编辑:程序博客网 时间:2024/06/03 16:45
Description
从重量分别为w[1]……w[n]物品之中选择若干件,装入能装s重的背包,是否正好装满?
Input
背包容量s 物品总件数n
w[0]
……
w[n-1]
Output
Have Solution(单词第一字母大写,单词之间空一格)
被选中装入背包的物品重量(按初始值顺序输出,每个数占5个字符位,靠左)
或:
No Solution(并换行回车)
Sample Input
12 5256713
Sample Output
Have Solution5 7 (并换行回车)
KEY:用的是递归的办法;
Source:
#include<iostream>
using namespace std;
int k;
int w[100];
int a[100];
int bag(int s,int n)
...{
if(s==0) return 1;
if(s<0||s>0&&n<1) return 0;
if(bag(s-w[n],n-1)==1)
...{
a[k++]=w[n];
return 1;
}
else return bag(s,n-1);
}
int main()
...{
// freopen("fjnu_1745.in","r",stdin);
int s,n;
int i;
cin>>s>>n;
for(i=1;i<=n;i++)
cin>>w[i];
int t=bag(s,n);
if(t==1)
...{
cout<<"Have Solution"<<endl;
for(i=0;i<k;i++)
...{
printf("%-5d",a[i]);
}
cout<<endl;
}
else cout<<"No Solution"<<endl;
return 0;
}
#include<iostream>
using namespace std;
int k;
int w[100];
int a[100];
int bag(int s,int n)
...{
if(s==0) return 1;
if(s<0||s>0&&n<1) return 0;
if(bag(s-w[n],n-1)==1)
...{
a[k++]=w[n];
return 1;
}
else return bag(s,n-1);
}
int main()
...{
// freopen("fjnu_1745.in","r",stdin);
int s,n;
int i;
cin>>s>>n;
for(i=1;i<=n;i++)
cin>>w[i];
int t=bag(s,n);
if(t==1)
...{
cout<<"Have Solution"<<endl;
for(i=0;i<k;i++)
...{
printf("%-5d",a[i]);
}
cout<<endl;
}
else cout<<"No Solution"<<endl;
return 0;
}
- fjnu 1745 0-1背包
- FJNU 0-1背包
- FJNU
- fjnu 1716 1+1猜想
- 背包问题(0-1背包、完全背包、多重背包)详解
- 0-1背包----完全背包
- 0-1背包+分数背包
- fjnu 1759 1+1猜想 II
- fjnu 1167 The 3n + 1 problem
- 背包问题之0/1背包,完全背包,多重背包,混合背包
- 【背包问题】背包问题之0-1背包、完全背包、多重背包
- 0/1背包,完全背包,多重背包方程
- 0-1背包、部分背包和完全背包模板
- 背包问题(0/1背包,完全背包)
- 背包笔记-含0/1背包问题、完全背包问题、多重背包问题、二维背包问题、分组背包问题
- 0/1背包与完全背包
- 背包问题之0-1背包(一)
- 背包问题之0-1背包(二)
- 主板跳线
- fjnu 1710 保龄球娱乐计分
- 微软MIX’08今日开幕
- struts2中利用拦截器实现权限管理
- ASP身份证号码验证函数
- fjnu 1745 0-1背包
- asp中文数字验证码
- LSE配置备忘
- IE8 beta1 的下载地址以及官方论坛
- mysql 中使用存储过程
- 有关日内瓦BRM会议的ISO官方声明
- Elicpse简介
- 网络招聘巨头亏损引模式之辩
- 汇总c#.net常用函数和方法集