01背包求改玄关
  • 板块灌水区
  • 楼主a_little_carrot
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/4/27 12:14
  • 上次更新2024/4/27 14:56:02
查看原帖
01背包求改玄关
1042960
a_little_carrot楼主2024/4/27 12:14

蒟蒻01背包没学好(悲

只会恰好

#include<bits/stdc++.h>
using namespace std ;
int n,k ;
int cost[102] ;
int weight[102] ;
int f[102][10003] ;
int main() {
	scanf("%d%d",&n,&k) ;
	for(int i=1 ;i<=n ;i++) {
		scanf("%d",&cost[i]) ;
		weight[i]=cost[i] ;
	}
	for(int i=1;i<=n;i++) {
		for(int j=0;j<=k;j++) {
			if(j>=cost[i])f[i][j]=max(f[i][j],f[i-1][j-cost[i]]+weight[i]) ;
			f[i][j]=max(f[i][j],f[i-1][j]) ;
		}
	}
	printf("%d",f[k][n]) ;
	return 0 ;
}

Link

求大佬改进

2024/4/27 12:14
加载中...