文章
21
粉丝
0
获赞
12
访问
3.3k
#include<iostream>
#include<cstring>
using namespace std;
int dp[1001][1001];//dp数组里存重量,利用01背包解题,只不过这里的价值和重量是1:1
int w[1001];
int main(){
int s,n;
while(cin>>s>>n){
for(int i=1;i<=n;i++){
cin>>w[i];
}
memset(dp,0,sizeof(dp));
//dp就两个操作:装和不装
for(int i=1;i<=n;i++){
for(int j=s;j>=0;j--){
dp[i][j]=dp[i-1][j];//默认不能装
if(j>=w[i]) dp[i][j]=max(dp[i-1][j-w[i]]+w[i],dp[i-1][j]);
&nbs...
登录后发布评论
暂无评论,来抢沙发