40分求助,抄的版子还这样
查看原帖
40分求助,抄的版子还这样
1340313
mowanggao楼主2024/5/17 22:30
//01背包问题 
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=1100;
const int INF=0x3f3f3f3f;
int T,M,t[maxn],c[maxn],dp[maxn][maxn];//表示在前I件,在V容量的最大价值 
int main(){
    cin>>T>>M;
    for(int i=1;i<=M;i++){
    	cin>>t[i]>>c[i];
	}
	//边界(默认全局) 
	for(int i=1;i<=T;i++)dp[0][i]=0; //都是合理情况 
	for(int i=1;i<=M;i++)dp[i][0]=0; //
	dp[0][0]=0;
	for(int i=1;i<=M;i++){
		for(int v=t[i];v<=T;v++){
			dp[i][v]=max(dp[i-1][v],dp[i-1][v-t[i]]+c[i]);
		}
	}
	printf("%d",dp[M][T]);
    return 0;    
}
2024/5/17 22:30
加载中...