P2639 [USACO09OCT] Bessie's Weight Problem G

image

image

大概就是在不超过容量的情况下,问你最多能吃多少

是吃与不吃,选与不选的问题,所以是01背包,但是是变式

#include<bits/stdc++.h>
using namespace std;
const int N=5e4;
int f[N],t[1000];
int main(){
	int T,n;
	cin>>T>>n;
	for(int i=1;i<=n;i++){
		cin>>t[i];
	}
	for(int i=1;i<=n;i++){
		for(int j=T;j>=t[i];j--){
			f[j]=max(f[j],f[j-t[i]]+t[i]);
		}
	}
	cout<<f[T];
	return 0;
}
posted @ 2023-11-11 22:43  yufan1102  阅读(10)  评论(0编辑  收藏  举报